我有这段代码,其目的是获取文件的内容并将其放入 div 中。
<script type="text/javascript">
setInterval("loadXMLDoc()",2000);
function loadXMLDoc(){
var xmlhttp;
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
xmlhttp.open("GET","ajax_doc.txt",true);
xmlhttp.send();
}
</script>
但在 Chrome、Opera 和 Safari 中,div 中的文本每 2 秒闪烁一次。在 Firefox 中,这种情况不会发生。我该怎么做才能避免眨眼?该代码在带有 Appache 的本地计算机上运行。谢谢
最佳答案
您应该尝试向 onreadystatechange 处理程序添加一条 if 语句,以检查请求是否已完成,因为可能还有其他就绪状态。您还应该检查状态是否正常 (200),而不是找不到页面 (404)
if (xmlhttp.readyState==4 && xmlhttp.status==200)
setInterval函数会按照指定的时间间隔继续调用该函数,直到调用clearInterval方法。 setTimeout函数只会调用该函数一次,从而停止页面刷新。
关于javascript - 带有闪烁的 setInterval 的 Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28652589/