서버를 압도하지 않도록 5 초마다 업데이트되는 값을 HTML 페이지에 만들고 싶습니다. 내 함수 내부의 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 및 기타 여러 질문. –
@ 토라자부로 : 둘 다 정확히 정식입니다. 이 중 하나가되지 않을 수도 있습니다,하지만 지금은 꽤 괜찮은 모양에 속았다 고 생각하지만, 더 비틀기는 아마도 여전히 도움이 될 것입니다. –