我試圖讓webworker每隔一秒鐘在同一臺計算機上輪詢Web服務器接口。我讀過的大多數文章都說避免setInterval並使用setTimeout,但我還沒有找到使用AJAX代替Jquery的示例。AJAX Webworker使用setTimeout輪詢
我到目前爲止的代碼如下:
(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);
})();
優選的輸出將是輪詢服務器,每個第二理論上應該是足夠的用於響應才能通過。我一次只需要一個請求,所以如果最終發出的請求超過一秒鐘,它只會轉儲請求(而不是排隊)併發出新的請求。
上面的代碼民意調查沒有問題,但沒有完成2秒,所以我顯然有我的setTimeout混淆在某個地方。我在哪裏可以更正此代碼?
把超時的onoad – epascarello