我想在HTML頁面上創建一個值,每5秒更新一次,以免壓倒服務器。事實證明,我的函數內的setTimeout()不是正確延遲,而是立即調用。有人能幫我找到線索嗎?我真的不想讓我的服務器工作太多,因爲我必須實現更多的AJAX。setTimeout立即調用函數而不是延遲
下面的代碼:
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);
}
}
}
可能重複的[在循環中調用setTimeout不按預期工作](http://stackoverflow.com/questions/19714453/calling-settimeout-in-a-loop-not-working-as-expected) –
也http://stackoverflow.com/questions/15682524/settimeout-in-nodejs-loop和其他幾個問題。 –
@torazaburo:這些都不是完全正規的。這個也許不是,但我認爲現在它的體形相當不錯,儘管任何更多的調整可能仍然有幫助。 –