欢迎来到代码驿站!

jquery

当前位置:首页 > 网页前端 > jquery

浅谈jQuery中ajaxPrefilter的应用

时间:2021-01-23 10:17:17|栏目:jquery|点击:

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("开始时间不能大于结束时间");
      }
    }
  }
});

上一篇:jquery重复提交请求的原因浅析

栏    目:jquery

下一篇:jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】

本文标题:浅谈jQuery中ajaxPrefilter的应用

本文地址:http://www.codeinn.net/misctech/50045.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有