這是我的功能如何使用jquery中止所有掛起的ajax請求的列表?
var xhr;
function abortAjax() {
$.each(xhrPool, function(idx, jqXHR) {
jqXHR.abort();
});
}
$(document).ready(function() {
fn = function() {
xhrPool = [];
xhr = $.ajax({
url: '/getUrl',
beforeSend: function(jqXHR) {
xhrPool.push(jqXHR);
},
complete: function(jqXHR, data) {
if (jqXHR.statusText != "error") {
//my functions
}
}
});
};
var interval = setInterval(fn, 5000);
});
function abort_allAjax(){
//I need to make fresh ajax call when it enters this function
function abortAjax();
fn();
}
FN是我更新表數據的功能。它每5秒更新一次。因此,許多未決的Ajax請求將會在那裏。
當我調用abort_allAjax()函數,新數據需要更新,所以我需要中止所有未決的請求,並作出新的ajax調用。
我試圖用
function abortAjax() {
$.each(xhrPool, function(idx, jqXHR) {
jqXHR.abort();
});
}
但它中止只有最後一個Ajax調用。如果任何人有想法或任何工作的例子中止所有的Ajax電話,請幫助我!提前感謝!
在jQuery 3,ajax的方法返回一個承諾沒有額外的方法(比如中止),因此這將不再工作。查看3.0博客http://blog.jquery.com/2016/01/14/jquery-3-0-beta-released/ – BlackBurn027
@RamyaS查看https://stackoverflow.com/help/someone-answers – guest271314