ajax请求多个url怎么弄,同时大量ajax请求同一个url的处理

该博客讨论了在网络延迟情况下,用户频繁点击按钮导致的多个Ajax请求并发问题。作者提出使用jQuery的ajaxPrefilter方法作为解决方案,通过创建一个唯一的请求标识并存储在全局变量中,来检查并取消重复的请求,从而避免回调函数的交错影响。这种方法能有效减少意外情况的发生,特别是在网络条件不佳时。
摘要由CSDN通过智能技术生成

情景比如: 一个load数据的按钮,因为网络比较慢或其他原因,用户一直狂点这个按钮,就会发出N多ajax请求出去。因为网络延迟,多个ajax返回的回调处理函数可能会交叉影响,造成意料外的结果。

其中一种方式是,对按钮的点击做限制,某个时间段内不允许重复点击,但是治标不治本,网络差的时候,也会发生意外状况。

这里想到的是一个目前还相对简单的处理方式,使用jQuery的jQuery ajaxPrefilter方法做预处理。普通ajax请求同理也是可以处理的。代码如下:

/* ajax请求预前过滤器 */

$.ajaxPrefilter(function(options, originalOptions, jqXHR) {

var args = originalOptions;

var _url = args.url || location.href;

var data = args.data || {};

//参数名+url做唯一判定

var xhrId = [_url];

for(var key in data) {

xhrId.push(key);

};

xhrId = xhrId.join('');

var cacheXhr = window[xhrId];

if(cacheXhr && cacheXhr.readyState != 4) {

cacheXhr.abort();

};

window[xhrId] = jqXHR;

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值