jquer之ajaxQueue简单实现代码


Posted in Javascript onSeptember 15, 2011

没什么复杂的东西,就是用个array对象来做队列,维护ajax请求的顺序。下面给出代码:

;(function($) { 
$.ajaxQueue = { 
// 管理ajax请求的队列 
requests: new Array(), 
// 把待发送的ajax请求加入队列 
offer: function(options) { 
var _self = this, 
// 对complete,beforeSend方法进行“劫持”,加入队列处理方法poll 
xhrOptions = $.extend({}, options, { 
// 如果请求完成,发送下一个请求 
complete: function(jqXHR, textStatus) { 
if(options.complete) 
options.complete.call(this, jqXHR, textStatus); 
_self.poll(); 
}, 
// 如果请求被取消,继续发送下一个请求 
beforeSend: function(jqXHR, settings) { 
if(options.beforeSend) 
var ret = options.beforeSend.call(this, jqXHR, settings); 
if(ret === false) { 
_self.poll(); 
return ret; 
} 
} 
}); 
this.requests.push(xhrOptions); 
if(this.requests.length == 1) { 
$.ajax(xhrOptions); 
} 
}, 
// 用FIFO方式发送ajax请求 
poll: function() { 
if(this.isEmpty()) { 
return null; 
} 
var processedRequest = this.requests.shift(); 
var nextRequest = this.peek(); 
if(nextRequest != null) { 
$.ajax(nextRequest); 
} 
return processedRequest; 
}, 
// 返回队列头部的ajax请求 
peek: function() { 
if(this.isEmpty()) { 
return null; 
} 
var nextRequest = this.requests[0]; 
return nextRequest; 
}, 
// 判断队列是否为空 
isEmpty: function() { 
return this.requests.length == 0; 
} 
} 
})(jQuery);

使用的话就是$.ajaxQueue.offer(settings),settings的配置和jQuery文档的一致。
如果您感兴趣,可以点击我的jsFiddle share进行在线运行,修改等。最后有什么问题,欢迎提出交流 :)

Javascript 相关文章推荐
javascript 遍历验证所有文本框的值
Aug 27 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
Apr 18 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
May 21 Javascript
javascript中indexOf技术详解
May 07 Javascript
vue.js指令v-model实现方法
Dec 05 Javascript
JS中IP地址与整数相互转换的实现代码
Apr 10 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
Aug 17 Javascript
Vue.js实现输入框绑定的实例代码
Aug 24 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
Sep 10 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
May 17 Javascript
vue实现的仿淘宝购物车功能详解
Jan 27 Javascript
node.js如何操作MySQL数据库
Oct 29 Javascript
js substr、substring和slice使用说明小记
Sep 15 #Javascript
javascript 闭包
Sep 15 #Javascript
用JQuery模仿淘宝的图片放大镜显示效果
Sep 15 #Javascript
document.getElementById介绍
Sep 13 #Javascript
动态创建样式表在各浏览器中的差异测试代码
Sep 13 #Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
Sep 13 #Javascript
jQuery中使用了document和window哪些属性和方法小结
Sep 13 #Javascript
You might like
php抓即时股票信息
2006/10/09 PHP
php xml-rpc远程调用
2008/12/19 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
2016/03/07 PHP
理解Javascript_09_Function与Object
2010/10/16 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
2013/04/17 Javascript
JavaScript中的连字符详解
2013/11/28 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
2018/12/10 jQuery
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
原生js实现随机点名功能
2019/11/05 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
js实现移动端轮播图滑动切换
2020/12/21 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
Python实现登录接口的示例代码
2017/07/21 Python
Python并发编程协程(Coroutine)之Gevent详解
2017/12/27 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
2019/05/10 Python
世界排名第一的万圣节服装店:Spirit Halloween
2018/10/16 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
创建省级文明单位实施方案
2014/02/27 职场文书
2014学校庆三八妇女节活动总结
2014/03/01 职场文书
书法大赛策划方案
2014/06/04 职场文书
校运动会广播稿(100篇)
2014/09/12 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
团员年度个人总结
2015/02/26 职场文书
2015年语文教研组工作总结
2015/05/23 职场文书
天那边观后感
2015/06/09 职场文书
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python