SETTimeout函数立即调用,而不是在延迟后调用。我希望在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);
}
}}
2 回答
米脂
TA贡献1836条经验 获得超3个赞
setTimeout
setTimeout(GetUsersNumber, 5000);
*
慕运维8079593
TA贡献1876条经验 获得超5个赞
GetUsersNumber
GetUsersNumber()
setTimeout(GetUsersNumber, 50000);
大多数现代浏览器本机支持XMLHttpRequest。因此,不需要使用ActiveXObject。 对于较旧的浏览器,if条件无论如何都会产生错误。这样做: if(window.XMLHttpRequest)
添加回答
举报
0/150
提交
取消