我有一些AJAX代码我希望每1秒继续运行一次。我将其添加到我的HTML页面中,看它是否会继续更新,但我必须刷新才能看到更改。
while (1) {
getTime();
}
这不能继续更新,它从未更新我的文本。有什么方法让Ajax反复做一些事情?
这是getTime():
function getTime() {
if (str=="") {
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","auction.php?getTime=1",true);
xmlhttp.send();
setTimeout(getTime, 1000);
}
谢谢!
答案 0 :(得分:1)
重复性任务通常使用setInterval
在javascript中完成:
window.setInterval
重复调用函数或执行代码片段,每次调用该函数之间都有固定的时间延迟。
在您的示例中,那将是
setInterval(getTime, 1000);
答案 1 :(得分:0)
setInterval()
可能是您最好的选择 - 或者,setTimeout
会反复重置AJAX成功。
答案 2 :(得分:0)
setInterval(getTime, 1000); // Run getTime() every second
setInterval(getTime, 200); // Run getTime() every 200 milliseconds
答案 3 :(得分:0)
您的代码是一个无限循环,并且将很快进入浏览器可以处理的js打开连接的限制数量。
使用window.setInterval
来做这件事。
window.setInterval(getTime, 1000);
答案 4 :(得分:0)
function getTime(){
setTimeout(getTime, [interval]);
}
这应该这样做。