登录  /  注册
首页 > web前端 > js教程 > 正文
jquer之ajaxQueue简单实现代码_jquery
php中文网
发布: 2016-05-16 18:02:03
原创
704人浏览过
没什么复杂的东西,就是用个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进行在线运行,修改等。最后有什么问题,欢迎提出交流 :)

相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学