利用jquery的ajaxPrefilter阻止重复发送请求

(function ($) {
var pendingRequests = {};
// 所有ajax请求的通用前置filter
$.ajaxPrefilter(function (options, originalOptions, jqXHR) { // 不重复发送相同请求
var key = generatePendingRequestKey(options);
if (!pendingRequests[key]) {
//storePendingRequest(key, jqXHR);
pendingRequests[key] = jqXHR;
} else {
// or do other
jqXHR.abort();
} var complete = options.complete;
options.complete = function (jqXHR, textStatus) {
// clear from pending requests
pendingRequests[key] = null;
if ($.isFunction(complete)) {
complete.apply(this, arguments);
}
};
}); function generatePendingRequestKey(opts) {
var url = opts.url;
var type = opts.type;
var data = opts.data;
var str = url + type;
if (data) {
str += data;
}
return str;
}
}(jQuery));

利用jquery的ajaxPrefilter阻止重复发送请求的更多相关文章

  1. EasyUI easyui-combobox 重复发送请求

    今天在做个EasyUI easyui-combobox 下拉框动态连级的时候发现在选择一个值的时候发送了两次请求,这有点逆天呀~!!反人类~!必须和谐一开始以为是重复绑定了,重新审核了代码 确定没有~ ...

  2. 利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据

    1:跨域请求handler一般处理程序 using System; using System.Collections.Generic; using System.Web; using System.W ...

  3. jquery向苹果或者android发送请求

    var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return { ...

  4. charles重复发送一个网络请求&同时发送N次

    重发网络请求的目的:后端调试的过程中,一直在客户端进行点点点比较麻烦,此时直接发送请求比较方便查看调试后的结果(方便后端调试) 1.重复发送一个请求(有两种方法) (1)选定该请求,右键选择repea ...

  5. 防止重复发送Ajax请求问题

    在工作中有很多场景需要通过Ajax请求发送数据,像是注册.登录.提交用户反馈等.用户在点击了“确认”按钮之后有可能一段时间内没有收到反馈页面无任何反应,然后就接着连续多次点击“确认”按钮导致发送n个重 ...

  6. JQuery Ajax 发送请求成功后却接收不到任何响应数据问题

    问题描述 使用 JQuery Ajax 向后端服务器发送请求,服务器也收到请求返回了响应数据,但是 Ajax 却收不到任何响应数据. 举例如下: $.ajax({ type: "post&q ...

  7. 【javascript】利用jquery ajaxPrefilter防止ajax重复提交

    利用jquery ajaxPrefilter中断请求 var pendingRequests = {}; $.ajaxPrefilter(function( options, originalOpti ...

  8. 怎样防止重复发送 Ajax 请求?

    著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:长天之云链接:http://www.zhihu.com/question/19805411/answer/15465427来源 ...

  9. 转:jquery向普通aspx页面发送ajax请求

    本文将介绍在ASP.NET中如何方便使用Ajax,第一种当然是使用jQuery的ajax,功能强大而且操作简单方便,第二种是使用.NET封装好的ScriptManager. $.ajax向普通页面发送 ...

随机推荐

  1. OpenCV边缘检测的详细参数调节

    1. findCountours 转载于http://blog.sina.com.cn/s/blog_7155fb1a0101a90h.html findContours函数,这个函数的原型为: &l ...

  2. html formData 数据 提交和 .netMVC接收

    <form id="uploadForm" enctype="multipart/form-data"> <input type=" ...

  3. Redis 之list链表结构及命令详解

    1.lpush  key   value   从左放一个值 2.rpush  key   value  从右放一个值 3.lrange  key  start   stop  获取链表数据(start ...

  4. Xilinx 7系列FPGA部分重配置【2】

    在之前的“Xilinx 7系列FPGA部分重配置[1]”中已经较为详细地记录了分别在工程模式(Project Mode)和非工程模式(Non-Project Mode)下.使用7系列的Xilinx F ...

  5. 【剑指Offer】21、栈的压入、弹出序列

      题目描述:   输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2 ...

  6. html表单练习

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. 非传统题初探——AtCoder Practice Contest #B - インタラクティブ練習 (Interactive Sorting)

    原题: Time limit : 2sec / Memory limit : 256MB Score : 300 points Problem Statement This is an interac ...

  8. C++ 对象创建的问题

    一.C++对象的创建: 对象创建的注意事项: 1.对象数组里的个数,就是创建对象的个数,普通数组一样:下标从0 到数组里数字 -1: 2.类名*  对象指针   <-->  这里只是一个指 ...

  9. Xcache3.2.0不支持php7.0.11

    编译安装xcache3.2.0时在make这一步报错: AUTOCHECK missing : "arg_flags" "cache_size" AUTOCHE ...

  10. HDU 2795 Billboard (线段树+贪心)

    手动博客搬家:本文发表于20170822 21:30:17, 原地址https://blog.csdn.net/suncongbo/article/details/77488127 URL: http ...