私は同じマシン上のWebサーバーインターフェイスを毎秒ポーリングするWebワーカーを取得しようとしています。私が読んだ記事の多くは、setIntervalを避け、代わりにsetTimeoutを使用すると述べていますが、Jqueryの代わりにAJAXを使用する例はまだありません。setTimeoutを使用したAJAX Webworkerのポーリング
私がこれまで持っているコードは以下の通りです:
(function poll() {
setTimeout(function() {
var xhr = new XMLHttpRequest();
xhr.onload = function() {
if (xhr.status === 200) {
responseObject = JSON.parse(xhr.responseText);
var newContent = '';
newContent += responseObject.cmd;
console.log(newContent);
}
}
xhr.open('GET', 'http://localhost:8194/screen_update/1000', true);
xhr.send(null);
setTimeout(poll, 1000);
}, 1000);
})();
優先出力は、サーバに応答が通ってくるためにのために、理論的には十分すぎるほどであるべき秒ごとにポーリングするだろう。一度に1つのリクエストだけが必要です。リクエストが1秒以上かかると、キューに入れるのではなく要求をダンプして新しいリクエストを発行します。
上記のコードは大丈夫ですが、2秒間は完了しませんので、明らかにsetTimeoutがどこかで混ざっています。このコードはどこで修正できますか?
は、ステータスコードは、はい、おお200 – epascarello