浅谈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 相关文章推荐
js模拟弹出效果代码修正版
Aug 07 Javascript
setTimeout和setInterval的深入理解
Nov 08 Javascript
关于js内存泄露的一个好例子
Dec 09 Javascript
自己实现ajax封装示例分享
Apr 01 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
Dec 16 Javascript
js由下向上不断上升冒气泡效果实例
May 07 Javascript
js阻止浏览器默认行为的简单实例
May 15 Javascript
TypeScript入门-接口
Mar 30 Javascript
node.js中实现kindEditor图片上传功能的方法教程
Apr 26 Javascript
webpack配置sass模块的加载的方法
Jul 30 Javascript
layui实现下拉框三级联动
Jul 26 Javascript
原生js实现九宫格拖拽换位
Jan 26 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
Yii操作数据库的3种方法
2014/03/11 PHP
php中的静态变量的基本用法
2014/03/20 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
既简单又安全的PHP验证码 附调用方法
2016/06/02 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
基于jQuery的日期选择控件
2009/10/27 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
2016/01/26 Javascript
JavaScript基于原型链的继承
2016/06/22 Javascript
Node.js配合node-http-proxy解决本地开发ajax跨域问题
2016/08/31 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
js实现漂亮的星空背景
2019/11/01 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
node.js 如何监视文件变化
2020/09/01 Javascript
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2014/04/26 Python
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
项目经理任命书范本
2014/06/05 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
新郎新娘答谢词
2015/01/04 职场文书
团结友爱主题班会
2015/08/13 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书
2019财务毕业实习报告
2019/06/27 职场文书