ajax多次异步,Ajax 多次异步请求分析

取消之前的请求响应

在ajax请求未响应之前可以使用 xhr.abort() 取消,但如果发出的请求已经到达了服务器,这种终止只是让浏览器不在监听这个请求的响应,服务器端仍然会进行处理。使用 abort() 取消后会进入 error 回调函数

// 定义请求对象

var getCategoryInfoAjax = null;

function getCategoryInfo() {

if (getCategoryInfoAjax) {

// 不为 null 说明之前请求过,需要取消请求

getCategoryInfoAjax.abort();

}

getCategoryInfoAjax = $.ajax({

type: "POST",

contentType: "application/x-www-form-urlencoded;charset=utf-8",

url: url,

data: param,

success: function (result, testStatus) {

// 也可以在这里判断 ajax 请求是否存在来决定是否执行回调函数

},

complete: function (xhr, xs) {

xhr = null;

},

error: function (xmlHttpRequest, textStatus, errorThrown) {

if (xmlHttpRequest.statusText === 'abort') {

// 说明是主动中断,不作出提示

} else {

layer.msg('失败');

}

}

});

}

缺点:使用封装好的 ajax 方法,如果出现需要多个请求同时进行的情况,那么使用 abort() 取消请求会使其他请求终止。

优点:重复多次请求的情况下,我们可以抛弃之前所有的请求响应,获得最后一次的请求响应。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值