jQuery1.5 以后,Ajax 模塊提供了三個(gè)新的方法用于管理、擴(kuò)展 Ajax 請(qǐng)求,分別是:
前置過(guò)濾器 jQuery. ajaxPrefilter 請(qǐng)求分發(fā)器 jQuery. ajaxTransport, 類(lèi)型轉(zhuǎn)換器 ajaxConvert
為什么會(huì)出現(xiàn)這幾個(gè)新的概念?因?yàn)?ajax 在發(fā)送的過(guò)程還有很多一系列的處理。
具體看看代碼:
jQuery.extend({
//前置過(guò)濾器
ajaxPrefilter: addToPrefiltersOrTransports(prefilters),
//請(qǐng)求分發(fā)器
ajaxTransport: addToPrefiltersOrTransports(transports),
});
其實(shí)說(shuō)白了就是把對(duì)應(yīng)的方法制作成函數(shù)的形式填充到 prefilters 或者 transports對(duì)應(yīng)的處理包裝對(duì)象中,用的時(shí)候直接執(zhí)行,每個(gè)函數(shù)都保持著各自的引用,種寫(xiě)法的好處自然是靈活,易維護(hù),減少代碼量。
所以此時(shí)的 prefilters 中的結(jié)構(gòu)可以是這樣。
prefilters = {
'*': function() {
return {
send: function() {
},
callback: function() {
}
}
}
}
前置過(guò)濾器和請(qǐng)求分發(fā)器在執(zhí)行時(shí),分別遍歷內(nèi)部變量 prefilters 和 transports,這兩個(gè)變量在 jQuery 加載完畢后立即初始化,從過(guò)閉包的方法填充這個(gè) 2 個(gè)對(duì)象。
請(qǐng)驗(yàn)證,完成請(qǐng)求
由于請(qǐng)求次數(shù)過(guò)多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求
打開(kāi)微信掃碼自動(dòng)綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書(shū)簽
舉報(bào)