刷新页面时是否可以停止以下代码的请求/响应超时?
setInterval(function(){
var xhr = $.ajax({
url:'/ajax_controller/searchForTracks/'+logged_user_id,
success: function(data){
console.log(data+' tracks added');
}
});
},5000);
我试过了:
$(window).unload(function(){
xhr.abort();
});
和
window.onbeforeunload = function(){
throw new error('Aborting javascript');
}
但不是对我有用。我只想立即刷新页面,而不是等到我的URL上的xhr请求完成(有时需要几分钟);
答案 0 :(得分:0)
我认为问题在于:
setInterval(function(){
var xhr = $.ajax({... <---
},5000);
您正在初始化变量INSIDE回调函数,您所要做的就是:
var xhr;
setInterval(function(){
xhr = $.ajax({...
},5000);
然后你可以做
console.log(xhr); // Object...
我也建议缓存setInterval以便你可以
var myInterval = setInterval(function(){
xhr = $.ajax({...
},5000);
如果您需要取消间隔,请执行
clearTimeout(myInterval);
TLDR:这是一个范围问题。