列表7中展示了updateCart()中的代码。此函数使用DOM来解析购物车XML文档,并更新WEB页面(参见列表1)来反映新的购物车内容。注意对用来提取数据的XML DOM的调用。Cart元素上生成的属性,即序列化时生成的时间戳,通过检测它可以保证不会用老的数据来覆盖新的购物车数据。Ajax请求天生就是异步的,通过这个检测可以有效避免在过程外到达的服务器响应的干扰。
列表7:更新页面来反映出购物车XML文档内容
function updateCart(cartXML) {
// 从文档中获取根元素“cart”
var cart = cartXML.getElementsByTagName("cart")[0];
// 保证此文档是最新的
var generated = cart.getAttribute("generated");
if (generated > lastCartUpdate) {
lastCartUpdate = generated;