浅谈jQuery中ajaxPrefilter的应用
jQuery的定义了一个ajax过滤器ajaxPrefilter,通过该过滤器可以过滤通过jQuery相应的ajax函数发送的ajax请求。
在项目中,很多地方存在指定开始时间、结束时间来获取该时间区间内某些值随时间变化的过程线的需求,我们可以定义一个通用的ajaxPrefilter来过滤所有ajax请求,当开始时间超过结束时间的时候,便将该ajax请求abort。
$.ajaxPrefilter(function(options,originalOptions,jqXHR){//tm1、tm2表示开始时间、结束时间
varrequestType,params,startTime,endTime;
requestType=(originalOptions.type||"").toUpperCase();//jsonp的时候type为undefined
if(requestType==="GET"){
params=originalOptions.data?$.param(originalOptions.data):originalOptions.url;
}elseif(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(newDate(startTime).getTime()>newDate(endTime).getTime()){
jqXHR.abort();
alert("开始时间不能大于结束时间");
}
}
}
});
以上这篇浅谈jQuery中ajaxPrefilter的应用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。