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