小编典典

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

ajax

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

问题的扩展: 使用javascript有没有办法查看是否打开了XMLHttpRequests?例如“
window.XMLisActive()”或类似的东西?

解决方案:最终为XMLHttpRequest写一个包装器https://gist.github.com/1820380


阅读 426

收藏
2020-07-26

共1个答案

小编典典

除非您为JS编写一个包装器XmlHttpRequest(或对其进行猴子补丁处理)以跟踪打开的连接,否则无法检测到JS中的打开的连接。

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

  (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);
    }
  })();
2020-07-26