在实际的应用中,经常可能会遇到这种问题:
多次点击发出了多个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);