浅谈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图片预加载技术(详细演示)
Mar 12 Javascript
给jQuery方法添加回调函数一款插件的应用
Jan 21 Javascript
node.js中使用socket.io的方法
Dec 15 Javascript
JS简单实现点击复制链接的方法
Aug 03 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
Jul 12 Javascript
浅谈Vue.use的使用
Aug 29 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
Aug 29 Javascript
JavaScript数据结构之栈实例用法
Jan 18 Javascript
JS浏览器BOM常见操作实例详解
Apr 27 Javascript
基于JS实现快速读取TXT文件
Aug 25 Javascript
javascript实现多边形碰撞检测
Oct 24 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
Nov 06 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
定制404错误页面,并发信给管理员的程序
2006/10/09 PHP
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
php生成图片验证码
2015/06/09 PHP
php导出生成word的方法
2015/12/25 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
js实现文字滚动效果
2016/03/03 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
2016/11/29 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
微信小程序轮播图swiper代码详解
2020/12/01 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
python多进程控制学习小结
2018/10/31 Python
python面向对象法实现图书管理系统
2019/04/19 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
python cv2截取不规则区域图片实例
2019/12/21 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
2020/07/20 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
艺术节主持词
2014/04/02 职场文书
保外就医申请书范文
2015/08/06 职场文书
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android
python中subplot大小的设置步骤
2021/06/28 Python
MySQL笔记 —SQL运算符
2022/01/18 MySQL
PYTHON基于Pyecharts绘制常见的直角坐标系图表
2022/04/28 Python