国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jquer之a(chǎn)jaxQueue簡單實現(xiàn)代碼

2019-11-20 23:40:37
字體:
供稿:網(wǎng)友
沒什么復(fù)雜的東西,就是用個array對象來做隊列,維護ajax請求的順序。下面給出代碼:
復(fù)制代碼 代碼如下:

;(function($) {
$.ajaxQueue = {
// 管理ajax請求的隊列
requests: new Array(),
// 把待發(fā)送的ajax請求加入隊列
offer: function(options) {
var _self = this,
// 對complete,beforeSend方法進行“劫持”,加入隊列處理方法poll
xhrOptions = $.extend({}, options, {
// 如果請求完成,發(fā)送下一個請求
complete: function(jqXHR, textStatus) {
if(options.complete)
options.complete.call(this, jqXHR, textStatus);
_self.poll();
},
// 如果請求被取消,繼續(xù)發(fā)送下一個請求
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方式發(fā)送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進行在線運行,修改等。最后有什么問題,歡迎提出交流 :)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 三门峡市| 柯坪县| 泉州市| 临澧县| 咸丰县| 琼海市| 唐河县| 贵南县| 彰武县| 婺源县| 雷波县| 开鲁县| 南雄市| 汉源县| 河西区| 凤翔县| 武乡县| 嘉黎县| 商河县| 海阳市| 额尔古纳市| 翁牛特旗| 北川| 临武县| 黎城县| 通州市| 南召县| 西平县| 三明市| 建阳市| 萝北县| 凌海市| 桃园县| 金昌市| 合作市| 焦作市| 乐陵市| 新干县| 万荣县| 法库县| 嘉禾县|