setTimeout llama a la función inmediatamente en lugar de después del retraso
Quiero hacer un valor en una página HTML que se actualizará cada 5 segundos para no abrumar al servidor. Resulta que setTimeout () dentro de mi función no se retrasa correctamente, sino que se llama de inmediato. ¿Alguien puede ayudarme a encontrar una pista? Realmente no quiero darle demasiado trabajo a mi servidor porque tengo que implementar mucho más AJAX.
Aquí está el código:
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);
}
}
}