+ -
当前位置:首页 → 问答吧 → js+ajax定时刷新的小问题,在线等。

js+ajax定时刷新的小问题,在线等。

时间:2011-11-22

来源:互联网

JS部分:

<script>
window.setInterval(chkmsm(),1000);
function createxmlhttprequest() 
{  
var xmlhttp = false;
if(window.ActiveXObject){
 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}else{
 xmlhttp = new XMLHttpRequest();
}
return xmlhttp;  
}
function chkmsm()
{
  var xmlhttp=createxmlhttprequest();  
  xmlhttp.open('POST','cks.asp',true);  
  xmlhttp.onreadystatechange=function() {  
  if(xmlhttp.readyState==4) {  
  if(xmlhttp.status== 200) 
  {
  alert(xmlhttp.responseText);
  }
  }
  }
  xmlhttp.send(null); 
  } 
</script>


cks.asp

<%

response.Write "检测成功"

%>

调试结果发现 没有效果 当我刷新一次的时候 就会弹出检测成功 

望指点一下 这定时执行函数 是写错了么? 谢谢。


作者: enjoy_gw   发布时间: 2011-11-22

1 xmlhttp.open('POST','cks.asp?' + escape(new Date),true); 加时间戳
2
var tid = setTimeout(chkmsm,1000);

在回调函数中

  if(xmlhttp.status== 200)  
  {
  alert(xmlhttp.responseText);
  if(tid!=null) {clearTimeout(tid);tid=null;}
  tid = setTimeout(chkmsm,1000);
  }

作者: hookee   发布时间: 2011-11-22

写法写错了

window.setInterval(chkmsm(),1000);
改成
window.setInterval("chkmsm()",1000);或者window.setInterval(chkmsm,1000);

作者: zhoufeng0401   发布时间: 2011-11-22

谢谢两位 都能解决问题

hookee的方法考虑的更多,高人就是不一样啊,谢谢

zhoufeng0401的方法明了 直接指出我写的错误所在 谢谢


作者: enjoy_gw   发布时间: 2011-11-22