gpt4 book ai didi

javascript - 如何使用 jquery 中止所有待处理的 ajax 请求的列表?

转载 作者:行者123 更新时间:2023-12-01 02:57:40 25 4
gpt4 key购买 nike

这是我的功能

  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 调用,请帮助我!非常感谢!

最佳答案

fn 函数之外定义 xhrPool = []。当调用 setInterval 时,xhrPool 会在每次调用 fn 时重新定义。 函数 abortAjax() 应该是 abortAjax()

关于javascript - 如何使用 jquery 中止所有待处理的 ajax 请求的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46622336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com