【发布时间】:2020-08-22 11:10:57
【问题描述】:
我想在 HTML 页面上创建一个值,该值将每 5 秒更新一次,以免服务器不堪重负。事实证明,我的函数中的 setTimeout() 没有正确延迟,而是立即被调用。有人可以帮我找到线索吗?我真的不想给我的服务器太多的工作,因为我必须实现更多的 AJAX。
代码如下:
window.onload = function GetUsersNumber() {
aside = document.getElementById("users");
if (XMLHttpRequest) var x = new XMLHttpRequest();
else var x = new ActiveXObject("Microsoft.XMLHTTP");
x.open("GET", "users_count.php", true);
x.send();
x.onreadystatechange = function () {
if (x.readyState == 4) {
if (x.status == 200) aside.innerHTML = x.responseText;
setTimeout(GetUsersNumber(), 50000);
}
}
}
【问题讨论】:
-
@torazaburo:这些都不是完全规范的。这个可能也不是,但我认为它现在处于相当不错的状态可以被欺骗,尽管任何更多的调整可能仍然会有所帮助。
-
@Nathan:一个复杂的因素是这里不存在的其他问题中的
for循环。
标签: javascript function-pointers settimeout