终止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); 
发布了104 篇原创文章 · 获赞 132 · 访问量 55万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览