浅谈jQuery中ajaxPrefilter的应用


Posted in Javascript onAugust 01, 2016

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中ajaxPrefilter的应用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
小议javascript 设计模式 推荐
Oct 28 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
May 11 Javascript
JS 实现图片直接下载示例代码
Jul 22 Javascript
Jquery 例外被抛出且未被接住原因介绍
Sep 04 Javascript
Javascript实现多彩雪花从天降散落效果的方法
Feb 02 Javascript
js原型链与继承解析(初体验)
May 09 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
Jul 05 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
Sep 23 Javascript
JS中input表单隐藏域及其使用方法
Feb 13 Javascript
JS加密插件CryptoJS实现的DES加密示例
Aug 16 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
Oct 30 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
May 19 Javascript
AngularJS基础 ng-cloak 指令简单示例
Aug 01 #Javascript
全面接触神奇的Bootstrap导航条实战篇
Aug 01 #Javascript
JavaScript数值千分位格式化的两种简单实现方法
Aug 01 #Javascript
第一次接触神奇的Bootstrap菜单和导航
Aug 01 #Javascript
AngularJS基础 ng-click 指令示例代码
Aug 01 #Javascript
js 实现数值的千分位及保存小数方法(推荐)
Aug 01 #Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
Aug 01 #Javascript
You might like
一个php作的文本留言本的例子(三)
2006/10/09 PHP
一些 PHP 管理系统程序中的后门
2009/08/05 PHP
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
JQuery遍历json数组的3种方法
2014/11/08 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
JS Array.slice 截取数组的实现方法
2016/01/02 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
2016/08/08 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
原生js实现放大镜组件
2021/01/22 Javascript
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
Python yield 使用浅析
2015/05/28 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
python 实现return返回多个值
2019/11/19 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
Brasty波兰:香水、化妆品、手表网上商店
2019/04/15 全球购物
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
英文请假条
2014/04/11 职场文书
商铺租房协议书范本
2014/12/04 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
疾病证明书
2015/06/19 职场文书
贷款担保书范本
2015/09/22 职场文书
CocosCreator入门教程之网络通信
2021/04/16 Javascript
让文件路径提取变得更简单的Python Path库
2021/05/27 Python