日期:2014-05-16  浏览次数:20316 次

关于js函数中带条件定时刷新的问题
最近在做一个程序运行记录定时查询的功能,类似于现在12306自动刷票的功能,但是一直出不来效果,请指教,现将方法贴出来。

js中方法:

   function refreshJsp(){
        var logId = $("#logId").val();  //自身id
var status = $("#logStatus").val();//状态
var startDate = $("#logStartdate").val();
var endDate = $("#logEnddate").val();
window.location.href="listLogDataCycle.action?etlId="+
etlId+"&status="+status+"&startDate="+startDate+"&endDate="+endDate;  
setTimeout("refreshJsp()",5000); 
               }  


在jsp页面就遍历获得的list集合。我看网上setTime()的用法就是如此,但不知道为什么,就是出不来效果,只是在点击查询的时候查询了一次,定时没起效果,后将方法改成常量测试,setTimeout()的效果就出来了,测试代码如下:

   var i=0;
 function refreshJsp(){
        var logId = $("#logId").val();  //自身id
var status = $("#logStatus").val();//状态
var startDate = $("#logStartdate").val();
var endDate = $("#logEnddate").val();

                i++
                alert(i);
//window.location.href="listLogDataCycle.action?etlId="+
//etlId+"&status="+status+"&startDate="+startDate+"&endDate="+endDate;  
setTimeout("refreshJsp()",5000); 
               }  

证明用法正确,但是一发请求就不行了,又怀疑是请求方式不对,就把请求方式换成了ajax请求,window.location.href="listLogDataCycle.action?”xxx请求换成了$.post("listLogDataCycle.action",{
  "logId ":logId ,
   xxxx
});
这次一次请求也不发了,求指点原因!

------解决方案--------------------

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script>
function load(){
setTimeout("refreshJsp()",5000); 
}
function refreshJsp(){
            var logId = $("#logId").val();  //自身id
        var status = $("#logStatus").val();//状态
        var startDate = $("#logStartdate").val();
        var endDate = $("#logEnddate").val();