Javascript 我怎么知道现在没有执行任何AJAX请求?

Javascript 我怎么知道现在没有执行任何AJAX请求?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我怎么知道现在没有执行一个AJAX请求,或者所有AJAX请求都已完成? 我需要写一个if语句。我需要js native或jquery。 比如: 谢谢 您可以在jquery中设置跟踪ajax请求的事件 当所有请求都已完成时,ajaxStop会被触发在fetch或$.ajax或您使用的将每个请求添加到集合中的任何对象周围创建一个包装器,并检查集合的大小 const requests = new Set(); const makeReq = (...args) => { const in

我怎么知道现在没有执行一个AJAX请求,或者所有AJAX请求都已完成? 我需要写一个if语句。我需要js native或jquery。 比如:


谢谢

您可以在jquery中设置跟踪ajax请求的事件

当所有请求都已完成时,ajaxStop会被触发

在fetch或$.ajax或您使用的将每个请求添加到集合中的任何对象周围创建一个包装器,并检查集合的大小

const requests = new Set();
const makeReq = (...args) => {
    const initialRequest = fetch(...args);
    const bodyRequest = request
        .then(res => res.text())
        .finally(() => {
            requests.delete(bodyRequest);
        });
    requests.add(bodyRequest);
    return initialRequest;
};

然后,在发出请求时,始终使用makeReq而不是fetch。不需要jQuery。

如果您使用的是fetch或axios库,那么这些将返回promise。您可以检查Promise.allsettedarray of promises.@RajdeepDebnath我不使用它:您需要创建并监视一种ajax队列。。。这条线可能对你有帮助
let ajaxRunning = false ;

$( document ).ajaxStart(function() {
     ajaxRunning = true;
}).ajaxStop(function() {
     ajaxRunning = false;
});

if (!ajaxRunning) {
   // nothin doin
}
const requests = new Set();
const makeReq = (...args) => {
    const initialRequest = fetch(...args);
    const bodyRequest = request
        .then(res => res.text())
        .finally(() => {
            requests.delete(bodyRequest);
        });
    requests.add(bodyRequest);
    return initialRequest;
};