我试图让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