これは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呼び出しを中止するための作業例があれば、私を助けてください!ありがとう、事前にたくさん!
を働き、Ajaxの方法は、(のような中止)の追加メソッドずに約束を返すので、これは機能しなくなります。 3.0ブログhttp://blog.jquery.com/2016/01/14/jquery-3-0-beta-released/ – BlackBurn027
@RamyaS https://stackoverflow.com/help/someone-answersを参照してください。 – guest271314