Как проверить, открыты ли HTTP-запросы в браузере?
Есть ли простой способ определить, активен ли XMLHttpRequest в окне браузера? Или сколько активных? то есть. Есть ли способ обнаружить, есть ли какие-либо вызовы AJAX, активные в моем окне браузера?
Расширение вопроса: Использование javascript - это способ, которым я могу видеть, открыты ли какие-либо XMLHttpRequests? Например, "window.XMLisActive()" или что-то в этом роде?
Решение: закончено создание обертки для XMLHttpRequest https://gist.github.com/1820380
Ответы
Ответ 1
Невозможно обнаружить открытое соединение с 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);
}
})();
Ответ 2
Вы можете использовать FireBug для этого.
![enter image description here]()
Ответ 3
Используя jQuery, вы можете отслеживать, есть ли открытые запросы с глобальными обработчиками событий: . ajaxStart() и . ajaxComplete()
Глобальная переменная, установленная на ajaxStart и reset на ajaxComplete, должна выполнить задание.