六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 29|回复: 0

ajax队列管理之jquery.ajaxmanager

[复制链接]

升级  81.33%

44

主题

44

主题

44

主题

秀才

Rank: 2

积分
172
 楼主| 发表于 2013-1-29 08:36:59 | 显示全部楼层 |阅读模式
在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();来结束请求了.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表