淺談jQuery中ajaxPrefilter的應(yīng)用
jQuery的定義了一個(gè)ajax過濾器ajaxPrefilter,通過該過濾器可以過濾通過jQuery相應(yīng)的ajax函數(shù)發(fā)送的ajax請(qǐng)求。
在項(xiàng)目中,很多地方存在指定開始時(shí)間、結(jié)束時(shí)間來(lái)獲取該時(shí)間區(qū)間內(nèi)某些值隨時(shí)間變化的過程線的需求,我們可以定義一個(gè)通用的ajaxPrefilter來(lái)過濾所有ajax請(qǐng)求,當(dāng)開始時(shí)間超過結(jié)束時(shí)間的時(shí)候,便將該ajax請(qǐng)求abort。
$.ajaxPrefilter(function (options, originalOptions, jqXHR) { //tm1、tm2表示開始時(shí)間、結(jié)束時(shí)間
var requestType, params, startTime, endTime;
requestType = (originalOptions.type || "").toUpperCase(); //jsonp的時(shí)候type為undefined
if (requestType === "GET") {
params = originalOptions.data ? $.param(originalOptions.data) : originalOptions.url;
} else if (requestType === "POST") {
params = $.param(originalOptions.data);
}
if (params) {
startTime = params.match(/(^tm1|&tm1)=([^&#]*)/i) ? decodeURIComponent(params.match(/(^tm1|&tm1)=([^&#]*)/i)[2].replace(/\+/g, "%20")) : null;
endTime = params.match(/(^tm2|&tm2)=([^&#]*)/i) ? decodeURIComponent(params.match(/(^tm2|&tm2)=([^&#]*)/i)[2].replace(/\+/g, "%20")) : null;
if (startTime && endTime) {
startTime = startTime.replace(/\-/g, "/");
endTime = endTime.replace(/\-/g, "/");
if (new Date(startTime).getTime() > new Date(endTime).getTime()) {
jqXHR.abort();
alert("開始時(shí)間不能大于結(jié)束時(shí)間");
}
}
}
});
以上這篇淺談jQuery中ajaxPrefilter的應(yīng)用就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery 中msgTips 頂部彈窗效果實(shí)現(xiàn)代碼
最近發(fā)現(xiàn)好多網(wǎng)站都采用頂部彈窗,并且不用用戶手動(dòng)去點(diǎn)擊確定。感覺這樣很方便用戶,下面小編把實(shí)現(xiàn)代碼分享給大家,感興趣的的朋友一起看看吧2017-08-08
自己動(dòng)手制作jquery插件之自動(dòng)添加刪除行功能介紹
這個(gè)插件的上篇訪問量很不好,幾乎是我寫的文章里最少的點(diǎn)擊量的了,不知道是不是因?yàn)榇蠹覍?duì)我說的這個(gè)插件不感興趣還是說我寫的東西技術(shù)含量太差了,呵,那我只能孤芳自賞了2011-10-10
jQuery中clearQueue()方法用法實(shí)例
這篇文章主要介紹了jQuery中clearQueue()方法用法,實(shí)例分析了clearQueue()方法的功能、定義及進(jìn)行清空隊(duì)列操作的技巧,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12

