浅谈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库 开发规则
Jan 31 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
Feb 23 Javascript
基于jquery库的tab新形式使用
Nov 16 Javascript
javascript实现禁止复制网页内容
Dec 16 Javascript
jQuery判断是否存在滚动条的简单方法
Sep 17 Javascript
常用原生js自定义函数总结
Nov 20 Javascript
jquery实现提示语淡入效果
May 05 jQuery
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
JavaScript执行环境及作用域链实例分析
Aug 01 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
May 31 jQuery
基于vue-draggable 实现三级拖动排序效果
Jan 10 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
Aug 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
用文本文件制作留言板提示(上)
2006/10/09 PHP
php AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
mayfish 数据入库验证代码
2010/04/30 PHP
我的php学习笔记(毕业设计)
2012/02/21 PHP
PHP反射机制用法实例
2014/08/28 PHP
jQuery each()小议
2010/03/18 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
Javascript之Number对象介绍
2016/06/07 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
微信小程序Echarts图表组件使用方法详解
2019/06/25 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
vue组件系列之TagsInput详解
2020/05/14 Javascript
Python解析网页源代码中的115网盘链接实例
2014/09/30 Python
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
Python检测生僻字的实现方法
2016/10/23 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
python集合比较(交集,并集,差集)方法详解
2018/09/13 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
《陈涉世家》教学反思
2014/04/12 职场文书
校园运动会广播稿
2014/10/06 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
实习证明模板
2015/06/16 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS