浅谈jQuery中ajaxPrefilter的应用
jQuery的定义了一个ajax过滤器ajaxPrefilter,通过该过滤器可以过滤通过jQuery相应的ajax函数发送的ajax请求。
在项目中,很多地方存在指定开始时间、结束时间来获取该时间区间内某些值随时间变化的过程线的需求,我们可以定义一个通用的ajaxPrefilter来过滤所有ajax请求,当开始时间超过结束时间的时候,便将该ajax请求abort。
$.ajaxPrefilter(function (options, originalOptions, jqXHR) { //tm1、tm2表示开始时间、结束时间 var requestType, params, startTime, endTime; requestType = (originalOptions.type || "").toUpperCase(); //jsonp的时候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("开始时间不能大于结束时间"); } } } });
相关推荐
TONIYH 2020-07-22
83510998 2020-07-18
wcqwcq 2020-06-26
delmarks 2020-06-14
ppsurcao 2020-06-14
tthappyer 2020-06-07
kentrl 2020-11-10
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo
ajaxyan 2020-11-09
zndy0 2020-11-03
学留痕 2020-09-20
Richardxx 2020-11-09
learningever 2020-09-19
chongxiaocheng 2020-08-16
ajaxhe 2020-08-16
lyqdanang 2020-08-16
curiousL 2020-08-03