日期:2014-05-16 浏览次数:20699 次
在web应用中我们经常会用到ajax来进行web前段和服务器端的数据交互,那么如何管理我们的ajax请求的执行这就是我们需要思考的问题了。
ajax是异步请求,当然可以设置为同步但是会锁住浏览器用户体验不好,我们希望在第一次ajax请求执行完毕后再发送第二个ajax请求。
队列创建方法及说明:
var Queue=$.manageAjax.create('queue', {queue: true}); //创建一个队列对象
然后调用add方法添加构建ajax请求到队列中。然后通过私有_createAjax方法来创建XmlHttpRequest对象。
终止问题:怎样手动终止当前从队列中发送的ajax请求(XmlHttpRequest对象提供abort()来终止当前ajax请求).不错,我们怎样来获取当前从队列中发出的ajax请求对象。本人做了扩展,详情见附件。
修改说明:
在315行$.manageAjax._manager.prototype.send_xhr=null;添加扩展属性,用来保存当前发送的ajax请求对象。
153行that.send_xhr=that.requests[id];
156行that.send_xhr=$.ajax(o);
用来赋值当前创建的ajax请求对象。
这样我们就可以在需要手动终止请求对象的地方调用Queue.send_xhr.abort();来结束请求了.