是否有可能通过javascript判断是否有任何正在进行的'GET'请求?

时间:2010-11-09 02:30:49

标签: javascript jquery

是否可以通过javascript判断是否有正在进行的'GET'请求?

我有一种感觉,事实并非如此。基本上我不想发出单独的请求,而其他“更重要”的请求正在进行,因为这个请求相当沉重。所以我很好奇是否可以判断当前是否有“获取”请求,如果是,我可以告诉我的功能推迟更新并在10-15秒内再次执行。

任何信息等都将受到赞赏。

5 个答案:

答案 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");
  });