Как проверить, открыты ли HTTP-запросы в браузере? - PullRequest
16 голосов
/ 14 февраля 2012

Есть ли простой способ определить, активен ли XMLHttpRequest в окне браузера? Или сколько активных? то есть. Есть ли способ определить, активны ли какие-либо вызовы AJAX в окне моего браузера?

Расширение вопроса: Используя javascript, можно ли узнать, открыты ли какие-либо запросы XMLHttp? Например, "window.XMLisActive ()" или что-то подобное?

Решение: закончилась запись оболочки для XMLHttpRequest https://gist.github.com/1820380

Ответы [ 3 ]

28 голосов
/ 14 февраля 2012

Невозможно обнаружить открытое соединение с помощью 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);
    }
  })();
3 голосов
/ 14 февраля 2012

Для этого вы можете использовать FireBug .

enter image description here

1 голос
/ 14 февраля 2012

Используя jQuery , вы можете отслеживать наличие открытых запросов с глобальными обработчиками событий: .ajaxStart () и .ajaxComplete ()

Глобальная переменная, установленная в ajaxStart и сброшенная в ajaxComplete, должна выполнить эту работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...