如何检查HTTP请求是否在浏览器中打开?

kid*_*tal 16 javascript ajax xmlhttprequest

是否有一种简单的方法可以检测XMLHttpRequest在浏览器窗口中是否处于活动状态?或者有多少活跃?即.有没有办法检测我的浏览器窗口中是否有任何AJAX调用活动?

问题的扩展:如果有任何XMLHttpRequests打开,使用javascript是否可以看到?比如"window.XMLisActive()"之类的东西?

解决方案:结束编写XMLHttpRequest的包装器https://gist.github.com/1820380

Jua*_*des 28

没有办法从JS检测打开的连接,除非你为XmlHttpRequest(或猴子补丁)编写一个包装器来跟踪打开的连接.

这是kidcapital的猴子补丁,不确定它是否完美,但这是一个好的开始

  (function() {
    var oldOpen = XMLHttpRequest.prototype.open;
    window.openHTTPs = 0;
    XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
      window.openHTTPs++;
      this.addEventListener("readystatechange", function() {
          if(this.readyState == 4) {
            window.openHTTPs--;
          }
        }, false);
      oldOpen.call(this, method, url, async, user, pass);
    }
  })();
Run Code Online (Sandbox Code Playgroud)

  • 最终为它写了一个要点,可以在这里找到 https://gist.github.com/1820380 (3认同)