Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过JQuery检查页面上是否运行任何AJAX请求?_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 如何通过JQuery检查页面上是否运行任何AJAX请求?

Javascript 如何通过JQuery检查页面上是否运行任何AJAX请求?,javascript,jquery,ajax,Javascript,Jquery,Ajax,是否有任何方法可以找到页面(在$(window.load事件)上运行的任何AJAX请求 我想在所有ajax请求完成时应用一些事件 我试过了 .ajaxStop(函数(){ }) 但我想在页面上存在AJAX请求时放置此块(ajaxstop) 任何帮助都将不胜感激 确保此功能首先加载到浏览器: (function(open) { XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {

是否有任何方法可以找到页面(在
$(window.load
事件)上运行的任何AJAX请求

我想在所有ajax请求完成时应用一些事件

我试过了

.ajaxStop(函数(){
})

但我想在页面上存在AJAX请求时放置此块(
ajaxstop


任何帮助都将不胜感激

确保此功能首先加载到浏览器:

(function(open) {

    XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {

        this.addEventListener("readystatechange", function() {
            //Put your code here
        }, false);

        open.call(this, method, url, async, user, pass);
    };

})(XMLHttpRequest.prototype.open);
每次检索ajax响应时,都会调用以下listner函数,您应该将代码放在其中:

this.addEventListener("readystatechange", function() {
    //Put your code
}, false);
注: 此代码是从中提取的,用于截获所有ajax请求,您不需要在函数上传递参数:

(function(open) {
    XMLHttpRequest.prototype.open = function() {
        this.addEventListener("readystatechange", function() {
            // put your code here!
        }, false);
        open.apply(this, arguments);
    };
})(XMLHttpRequest.prototype.open);

确保此功能首先加载到浏览器:

(function(open) {

    XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {

        this.addEventListener("readystatechange", function() {
            //Put your code here
        }, false);

        open.call(this, method, url, async, user, pass);
    };

})(XMLHttpRequest.prototype.open);
每次检索ajax响应时,都会调用以下listner函数,您应该将代码放在其中:

this.addEventListener("readystatechange", function() {
    //Put your code
}, false);
注: 此代码是从中提取的,用于截获所有ajax请求,您不需要在函数上传递参数:

(function(open) {
    XMLHttpRequest.prototype.open = function() {
        this.addEventListener("readystatechange", function() {
            // put your code here!
        }, false);
        open.apply(this, arguments);
    };
})(XMLHttpRequest.prototype.open);

把这句话放在开头:

var ajax_running = false;
$(document).ajaxStart(function() {
  ajax_running = true;
});
然后您可以稍后使用:

$(document).ready(function() {
  if (ajax_running) {
    $(document).ajaxStop(function() {
      // do something
    })
    ajax_running = false;
  }
});

把这句话放在开头:

var ajax_running = false;
$(document).ajaxStart(function() {
  ajax_running = true;
});
然后您可以稍后使用:

$(document).ready(function() {
  if (ajax_running) {
    $(document).ajaxStop(function() {
      // do something
    })
    ajax_running = false;
  }
});

您可以这样做,创建一个函数,告诉您有多少活动请求处于挂起状态

const activeAjaxRequests=(函数(发送){
var-active_请求=0;
XMLHttpRequest.prototype.send=函数(正文){
活动_请求++;
addEventListener(“readystatechange”,function()){
如果(this.readyState==4)活动_请求--;
});
发送。呼叫(这个,身体);
};
return()=>活动的_请求;
})(XMLHttpRequest.prototype.send);
var active_requests=activeAjaxRequests();

log(`当前有${active_requests}active ajax请求。`)您可以这样做,这将创建一个函数,告诉您有多少活动请求处于挂起状态

const activeAjaxRequests=(函数(发送){
var-active_请求=0;
XMLHttpRequest.prototype.send=函数(正文){
活动_请求++;
addEventListener(“readystatechange”,function()){
如果(this.readyState==4)活动_请求--;
});
发送。呼叫(这个,身体);
};
return()=>活动的_请求;
})(XMLHttpRequest.prototype.send);
var active_requests=activeAjaxRequests();


log(`当前有${active_requests}active ajax请求。`)
您可以使用
.ajaxStart()
在第一个AJAX请求启动时调用函数。这可以添加
.ajaxStop()
处理程序。@Barmar:只有当有ajax请求时,我才需要应用ajaxstart,如果页面上没有ajax请求,我不想执行此代码。我想当有ajax请求时,你需要应用
ajaxStop
ajaxStart
会告诉您AJAX请求何时启动,这样您就知道有AJAX请求了。@Barmar:是的,但如果页面没有任何AJAX请求,我不想应用
ajaxStart
。也许jQuery会推迟到有用的时候,您可以使用
.ajaxStart()
在第一个AJAX请求启动时调用函数。这可以添加
.ajaxStop()
处理程序。@Barmar:只有当有ajax请求时,我才需要应用ajaxstart,如果页面上没有ajax请求,我不想执行此代码。我想当有ajax请求时,你需要应用
ajaxStop
ajaxStart
将告诉您AJAX请求何时启动,这样您就知道有AJAX请求。@Barmar:是的,但如果页面没有任何AJAX请求,我不想应用
ajaxStart
。也许jQuery推迟了什么时候有用,我将如何从您的代码检查页面上运行的AJAX请求,我的意思是你的代码将返回什么?我真的需要传递参数,即方法、url、异步等吗?@SunilKumar我不太理解你的问题。我的代码不会返回任何内容。您只需要确保在发出ajax请求的任何代码之前加载此代码。然后,对于ajax请求的每个响应,都将调用侦听器“readystatechange”,并且在侦听器函数中,您可以将其放在任何您想做的地方。@SunilKumar我对代码做了一些更改,以便您可以查看它!我也希望回答您的疑问如果页面上没有ajax请求,那么将执行哪个代码块?我将如何从您的代码检查ajax请求是否在页面上运行,我的意思是您的代码将返回什么?我真的需要传递参数,即方法、url、异步等吗?@SunilKumar我不太理解您的问题。我的代码不会返回任何内容。您只需要确保在发出ajax请求的任何代码之前加载此代码。然后,对于ajax请求的每个响应,都将调用侦听器“readystatechange”,并且在侦听器函数中,您可以将其放在任何您想做的地方。@SunilKumar我对代码做了一些更改,以便您可以查看它!我也希望回答您的疑问如果页面上没有ajax请求,那么将执行哪个代码块?它总是返回0request@SunilKumar-这是因为在运行时,始终没有请求。。。。。。在ajax请求期间,尝试在您自己的页面上运行它。它总是返回0request@SunilKumar-这是因为在运行时,始终没有请求。。。。。。在ajax请求期间,尝试在您自己的页面上运行它。。