国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

jQueryAjaxQueue改進步驟_jquery

來源:懂視網 責編:小采 時間:2020-11-27 21:00:55
文檔

jQueryAjaxQueue改進步驟_jquery

jQueryAjaxQueue改進步驟_jquery:假期里沒事就想著改進下,改得地方不多,主要有以下三點: complete回調在jquery1.5以后可以是一個函數數組,按數組順序調用。 如果前一個請求未返回,新的請求發出,那么撤銷前一個請求,也就是新的請求覆蓋原請求。 寫成面向對象的形式,再用一個Aja
推薦度:
導讀jQueryAjaxQueue改進步驟_jquery:假期里沒事就想著改進下,改得地方不多,主要有以下三點: complete回調在jquery1.5以后可以是一個函數數組,按數組順序調用。 如果前一個請求未返回,新的請求發出,那么撤銷前一個請求,也就是新的請求覆蓋原請求。 寫成面向對象的形式,再用一個Aja

假期里沒事就想著改進下,改得地方不多,主要有以下三點:
complete回調在jquery1.5以后可以是一個函數數組,按數組順序調用。
如果前一個請求未返回,新的請求發出,那么撤銷前一個請求,也就是新的請求“覆蓋”原請求。
寫成面向對象的形式,再用一個AjaxManage進行簡單的管理。
代碼如下,詳細可看注釋:
代碼如下:
;(function($) {
// override:新的請求是否要覆蓋之前的請求
function AjaxQueue(override) {
this.override = !!override;
};
AjaxQueue.prototype = {
requests: new Array(),
offer: function(options) {
var _self = this;
var xhrOptions = $.extend({}, options, {
complete: function(jqXHR, textStatus) {
// 支持complete是函數數組的情況
if($.isArray(options.complete)) {
var funcs = options.complete;
for(var i = 0, len = funcs.length; i < len; i++)
funcs[i].call(this, jqXHR, textStatus);
} else {
if(options.complete)
options.complete.call(this, jqXHR, textStatus);
}
// 處理結束,從隊列中發出下一個ajax請求
_self.poll();
},
beforeSend: function(jqXHR, settings) {
if(options.beforeSend)
var ret = options.beforeSend.call(this, jqXHR, settings);
// 如果當前ajax請求因為某些原因被撤銷了,那么去發下一個ajax請求
if(ret === false) {
_self.poll();
return ret;
}
}
});
// 如果支持覆蓋,那么調用replace
if(this.override) {
// console.log('go override');
this.replace(xhrOptions);
// 反之放入隊列
} else {
// console.log('go queue');
this.requests.push(xhrOptions);
if(this.requests.length == 1) {
$.ajax(xhrOptions);
}
}
},
// 撤銷前一個請求,發送新的請求
replace: function(xhrOptions) {
var prevRet = this.peek();
if(prevRet != null) {
// jquery源碼中可以看到此方法
prevRet.abort();
}
this.requests.shift();
this.requests.push($.ajax(xhrOptions));
},
// 輪詢隊列 發送下一個請求
poll: function() {
if(this.isEmpty()) {
return null;
}
var processedRequest = this.requests.shift();
var nextRequest = this.peek();
if(nextRequest != null) {
$.ajax(nextRequest);
}
return processedRequest;
},
// 返回隊列頭部的請求
peek: function() {
if(this.isEmpty()) {
return null;
}
var nextRequest = this.requests[0];
return nextRequest;
},
// 判斷隊列是否為空
isEmpty: function() {
return this.requests.length == 0;
}
};
var queue = {};
// 管理AjaxQueue的簡單對象
var AjaxManager = {
// 創建新的ajaxQueue
createQueue: function(name, override) {
return queue[name] = new AjaxQueue(override);
},
// 清除對應name的ajaxQueue
destroyQueue: function(name) {
if(queue[name]) {
queue[name] = null;
delete queue[name];
}
},
// 根據name得到對應的ajaxQueue
getQueue: function(name) {
return ( queue[name] ? queue[name] : null);
}
};
// 跟jQuery關聯起來,給個簡稱,方便調用
$.AM = AjaxManager;
})(jQuery);

其實也想再加上done,fail,always等配置,但或許會變得有點復雜,就先保持簡單
這里有兩個我的jsfiddle頁面,一個是覆蓋效果的,一個是隊列效果的,可以直接測試運行。
就到這里,如有問題,歡迎指出,thanks。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

jQueryAjaxQueue改進步驟_jquery

jQueryAjaxQueue改進步驟_jquery:假期里沒事就想著改進下,改得地方不多,主要有以下三點: complete回調在jquery1.5以后可以是一個函數數組,按數組順序調用。 如果前一個請求未返回,新的請求發出,那么撤銷前一個請求,也就是新的請求覆蓋原請求。 寫成面向對象的形式,再用一個Aja
推薦度:
標簽: 隊列 改進 ajax
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 久久超级碰 | 精品视频亚洲 | 亚洲国产精品成人综合久久久 | 欧美日韩国产一区二区三区在线观看 | 久久久精品一区二区三区 | 一级毛片在线看在线播放 | 免费国产叼嘿视频大全网站 | 国产精品免费观看视频 | 国产69精品久久 | 亚洲精品乱码久久久久久v 亚洲精品免费观看 | 亚洲国产成人久久综合野外 | 日韩 亚洲 制服 欧美 综合 | 免费的黄色毛片 | 性xxxxxx| 91麻豆免费视频 | 国产一级视频在线观看 | 大黄毛片 | 久热中文字幕在线精品首页 | 欧美第四页 | 日韩欧美91 | 亚洲欧美色图 | 久久久久久久国产高清 | 91色老99久久九九爱精品 | 国产成人综合久久 | 欧美日韩一二区 | 美国人禽交ooo | 国产一区二区三区在线视频 | 91原创在线 | 久久久久久亚洲精品不卡 | 国产一级淫片免费播放 | 国产在线精品观看 | 毛片网此 | 国产国语高清在线视频二区 | 日本一区二区视频在线观看 | 亚洲精品高清在线观看 | 日本三级全黄三级a | 国产一区二区三区在线视频 | 韩国中文字幕 | 国产在线视频一区二区三区 | 久久国产热 | 日韩亚射 |