是否可以通过javascript判断是否有正在进行的'GET'请求?
我有一种感觉,事实并非如此。基本上我不想发出单独的请求,而其他“更重要”的请求正在进行,因为这个请求相当沉重。所以我很好奇是否可以判断当前是否有“获取”请求,如果是,我可以告诉我的功能推迟更新并在10-15秒内再次执行。
任何信息等都将受到赞赏。
答案 0 :(得分:3)
我认为你不能只使用javascript来做到这一点。您可以使用jQuery之类的框架,并使用ajax manager等插件管理所有请求。
答案 1 :(得分:2)
我不知道任何内置的api,但它就像为它设置一个全局标志一样简单。
var get = 0;
function somethingeasy() {
get++;
$.get(somethingeasy, function() {
get--;
stuff;
});
};
function somethinghard() {
if(get)
{
setTimeout('somethinghard',1000);
return false;
}
get++;
$.get(somethinghard, function() {
get--;
stuff;
});
};
答案 2 :(得分:1)
如果使用jQuery进行所有AJAX调用,则可以使用ajaxSend()
事件......
$.ajaxSend(function(e, xhr, settings) {
if(settings.method == "GET") {
alert("GET request is being made...");
}
});
答案 3 :(得分:0)
您可以使用就绪/加载事件来检查它们何时完成 - 而不是直接查找请求 - 可能您知道要等待哪些对象。如果要等待加载所有图像,请不要让代码在调用document.load之后运行。
答案 4 :(得分:0)
jQuery 2+你可以使用:
$(document).ajaxStart(function(){
return console.log("an ajax event started");
});
$(document).ajaxStop(function(){
return console.log("all ajax events stopped");
});