ブラウザ ウィンドウでアクティブかどうかを検出する簡単な方法はありますかXMLHttpRequest
? または、アクティブなものはいくつありますか? つまり、ブラウザ ウィンドウでアクティブな AJAX 呼び出しがあるかどうかを検出する方法はありますか?
質問の拡張:JavaScript を使用して、XMLHttpRequests が開いているかどうかを確認する方法はありますか? たとえば、"window.XMLisActive()"
そのような方法はありますか?
解決策: 最終的に次のラッパーを作成しましたXMLHttpRequest
:要点はここ
ベストアンサー1
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);
}
})();
注記
これは Websocket を処理しませんfetch
が、その場合でも同様の操作を実行できます。