终止ajax请求

在实际的应用中,经常可能会遇到这种问题:

多次点击发出了多个ajax请求,但我们只想要最后一个的数据,这其中同时也存在一个问题,就是多次点击后返回的数据,不确定是不是最后一个点击返回的

解决办法:jquery的abort()方法

例:

var ajaxRe = $.get("ajax.php",{id:1},function(data){ 
    ....//一些操作 
}); 
ajaxRe .abort(); 

注释: $.get返回的数据类型是XMLHttpRequest。并且,XMLHttpRequest对象有abort()方法

abort()后,ajax请求立即停止,但还是会执行$.ajax success事件,所以在success时间的回调函数中需要添加判断ajaxRe 是否存在,不存在才执行回调函数

下面是多种情况的示例:

防止重复请求:

var request; 

if(request != null) 
    request.abort(); 

request = $.get("ajax.aspx",{flag:true},function(){ 
    //do something 
}); 

ajax & setTimeout实现 setTimeout在等待一秒之后将request的ajax终止:

var request= $.ajax( 
  //do something 
  ); 
var setTimeout= setTimeout(function(){alert('ok');request.abort()},2000); 
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值