日期:2014-05-17  浏览次数:20959 次

网页定时刷新_ajax
单独调用ajax可以,在定时器中调用不起作用,浏览器左下角提示“网页上有错误” 有可能是我使用setTimeout不对,请大家帮忙看看,代码如下:
/////////////////show.asp
<html>
<head>
<script type="text/javascript">
function showCustomer()
{
var xmlhttp;  

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","getcustomer.asp",true);
xmlhttp.send();
}
</script>
</head>
<body>

<script>setTimeout(showCustomer, 1000)</script>

</body>
</html>

////////////////getcustomer.asp
<%
  table_name = "m2.xls"
  set excelConn=Server.CreateObject("Adodb.Connection") 
  Driver = "Driver={Microsoft Excel Driver (*.xls)};" 
  DBPath = "DBQ=" & Server.MapPath(table_name) 
  excelConn.open Driver&DBPath 
  sql="select * from [Sheet1$]" '[Sheet1$]表单名
  set rs=excelConn.execute(sql)
  

response.write("<table>")
do until rs.EOF
  for each x in rs.Fields
  response.write("<tr><td><b>" & "ab" & "</b></td>")
  response.write("<td>" & Now() & "</td></tr>")
  next
  rs.MoveNext
loop
response.write("</table>")
%>




------解决方案--------------------
你这个代码是想1秒刷新一次, 
但<script>setTimeout(showCustomer, 1000)</script> 只能执行一次.
把这段放入函数最后, 就可以循环执行.
不过我怀疑它执行的效率, 而且会不会进入死循环, 你最好监视一下执行时间.
------解决方案--------------------
楼主现在的问题是页面有错误,上面的不是重点

需要确定错误的位置

工具-internet选项-高级-禁用脚本调试 把这个的选中去掉,再运行,看看具体是那句代码错了
另:setTimeout并没有错,就算有问题也是如4楼说的只能执行一次,但肯定是不会死循环的,放心