function chatUpdate() {
var xmlhttp = new XMLHttpRequest();
var url = document.URL + '&action=update';
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var myArr = JSON.parse(xmlhttp.responseText);
alert(myArr);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
setInterval(chatUpdate(), 1000);
此代码每3秒更新一次聊天。它正确地警告myArr
(我只是为了调试目的而提醒它),但只是一次 - 当页面加载时(但我需要每隔3秒),尽管调用了一个setInterval。
我认为问题是(必须是)onreadystatechange
/ readyState
在第一次请求后没有更新。我努力尝试但是没有成功。
请帮助
答案 0 :(得分:2)
问题在于您将函数传递给setInterval
的方式,与您的XHR调用无关。
传递函数时不要使用括号,只需传递名称即可。通过使用括号,您将立即执行该函数并传递返回值(在本例中为undefined)。
setInterval(chatUpdate, 1000);
// ^ no ()