javascript - 带有闪烁的 setInterval 的 Ajax 请求

标签 javascript ajax

我有这段代码,其目的是获取文件的内容并将其放入 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/

相关文章:

javascript - 如何使用 React.js 遍历 JSX 中的对象

javascript - jQuery .hide() 我做错了什么

javascript - 更改正文中所有文本元素的字体大小

javascript - 如何在不重新发明轮子的情况下为Android编写自己的浏览器?

javascript - 访问给定 <tr> 的特定 <td> 并更改 html

java - 如何使用 JavaScript、jQuery 和 HTML 为所有登录用户刷新页面(协作编辑)?

javascript - JSON 到 HTML 表的转换

jquery - 错误处理jQuery AJAX Promise与Q

javascript - 使用 jquery 保存 javascript 对象并从数据库传递 ID

javascript - 即使文件存在,XMLHttpRequest 返回 404