如何检查页面是否有待处理的AJAX或HTTP GET / POST请求?我使用javascript和/或python进行此检查。
我想要做的是在页面完成所有请求时执行脚本。 onload对我不起作用,如果你使用了firebugs网板,你会知道的。加载页面时onload会触发,但有可能仍有待处理的请求挂在某处。
先谢谢你。
如何检查页面是否有待处理的AJAX或HTTP GET / POST请求?我使用javascript和/或python进行此检查。
我想要做的是在页面完成所有请求时执行脚本。 onload对我不起作用,如果你使用了firebugs网板,你会知道的。加载页面时onload会触发,但有可能仍有待处理的请求挂在某处。
先谢谢你。
弄清楚了。谢谢你的努力。 只是简单明了的javascript。
interValRef = 0;
interValRef = setInterval("checkState();",100)
function checkState(){
if(document.readyState == 'complete'){
clearInterval(interValRef);
myFunc();
}
}
弄清楚了。谢谢你的努力。 只是简单明了的javascript。
interValRef = 0;
interValRef = setInterval("checkState();",100)
function checkState(){
if(document.readyState == 'complete'){
clearInterval(interValRef);
myFunc();
}
}
我看到你提到你正在使用Prototype.js。您可以通过检查来跟踪Prototype的活动请求 Ajax.activeRequestCount
值。您可以使用setTimeout或setInterval来检查这一点,以确保在页面加载时触发的任何请求都已完成(如果这是您要查看的内容)
我想你想知道HTML是否已完全加载。在这种情况下,您可以使用 DOM:加载 事件。这是一个关于如何将它与原型一起使用的示例(但必须有其他JS框架的变体):
document.observe("dom:loaded", function() {
// do whatever you want to do
});
加载DOM树后,此事件将立即触发。所以甚至在加载所有图像或外部数据(包括iframe)之前。
这是检查它的最佳方式。
var loadingDone = document.readyState=="complete" && jQuery.active === 0;
因此,如果完成Ajax调用,loadingDone将成立。如果它是假的,那么你可以添加等待。
您需要跟踪每个XMLHttpRequest并监视它是否完成或异步回调是否已执行。
假设您正在使用prototype.js,您可以使用所有请求对象的计数器跟踪
var ACTIVE_REQUESTS = 0; // GLOBAL
ACTIVE_REQUESTS++
new Ajax.Request('/your/url', {
onSuccess: function(response) {
ACTIVE_REQUESTS--;
// Handle the response content...
}
}));
console.log("there are " + ACTIVE_REQUESTS + " open AJAX requests pending");
document.addEventListener("readystatechange", function(event) {
if (document.readyState === "complete") {
console.log("complete");
}
});