<!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();
        window.location.href="listLogDataCycle.action?etlId="+
        etlId+"&status="+status+"&startDate="+startDate+"&endDate="+endDate; 
}
</script>
</head>
<body onload="load();">
</body></html>

解决方案 »

  1.   


    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script>
    $(refreshJsp);
    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; 
    }
    </script>
    </head>
    <body >
    </body></html>
    你这样写执行一次就跳转了 ,改成ajax吧
      

  2.   


    您这是等5秒调一次请求方法,也只是执行了一次。
    画面都刷新了 还用什么ajax
      

  3.   

        window.location.href="listLogDataCycle.action?etlId="+
            etlId+"&status="+status+"&startDate="+startDate+"&endDate="+endDate; 
    这句话直接就把页面刷新了。ajax干嘛? 5秒刷新一次。查询一次有啥问题呢
      

  4.   

    setTimeout 为延迟几秒执行;setInterval 为每隔几秒重复执行.你说你用错方法没有
      

  5.   

    就LZ的页面逻辑而言,setTimeout/setInterval是一样的,没区别因为页面加载后,设定5秒后刷新一次页面,页面都跳转了,计时重新开始,是延迟几秒执行还是每隔几秒重复执行都没有区别了...
      

  6.   

    是的,对我来说这两个效果是一样的,我估计是页面一跳转(虽然是跳到本页面),setTimeout()就触发不了了,除非setTimeout()函数定义为页面一加载就执行,但是这不是我要的效果,我想的是点击查询的时候再触发循环查询,这就产生了矛盾。
      

  7.   

    setTimeout("函数名",时间);跟setInterval()没啥区别吧?
      

  8.   

    那只能想点别的办法了,比如说用cookie记录或url后面带个什么参数来表示页面进入自动循环以url为例,一开始的页面是a.html,当你按下自动循环按钮的时候,页面跳转到a.html?auto=1页面内事先有一个方法
    window.onload = function () {
        var auto = url内auto的值 || 0;
        if(auto == 1) {
            setTimeout(refreshJsp, 5000);
        }  
    }页面内按钮的方法就是
    function autoRefresh() {
        var auto = url内auto的值 || 0;
        if(auto == 1) {//开启了循环,则关闭
            loaction.href = a.html;
        }else{//没有开启,则打开
            loaction.href = a.html?auto=1;
        }     
    }
      

  9.   

    setTimeout("函数名",时间);跟setInterval()没啥区别吧?前者为被动执行,后者为主动执行.所以,显然是有区别的你的流程应该目前是这样的:
    用户点击查询-->显示结果-->调用函数去更新结果集-->函数执行-->页面刷新;然后就停止了,因为你并没有在页面加载的时候默认执行那个函数所以,如果你就是想这样做的话,那么更改为:
    用户点击查询-->显示结果-->调用函数去更新结果集-->函数执行[参数后附加一个参数,比如:&search=1]-->页面刷新-->在页面加载完成后,检测search的值是否等于1,如果等于1,则调用函数;这样是不是符合你的意图??按你的逻辑,我猜测:你是不是想在用户浏览查询结果的时候,如果有符合查询条件新记录增加了,则让新记录也显示在查询结果内??如果是的话,建议你采用ajax进行局部的更新,没必要刷新整个页面
      

  10.   

    如果你要使用setInterval就需要使用ajax dom技术来操作页面。setTimeout也可以。循环ajax最好使用callback回调函数避免异步时间上的bug。
    如果你还是要刷新页面的话 那么你就只有使用存cookie了。没必要使用session那些加重服务器负载的技术。存cookie让你自己可以知道当前是什么操作然后对应的循环
      

  11.   

    setTimeout("函数名",时间);跟setInterval()没啥区别吧?前者为被动执行,后者为主动执行.所以,显然是有区别的你的流程应该目前是这样的:
    用户点击查询-->显示结果-->调用函数去更新结果集-->函数执行-->页面刷新;然后就停止了,因为你并没有在页面加载的时候默认执行那个函数所以,如果你就是想这样做的话,那么更改为:
    用户点击查询-->显示结果-->调用函数去更新结果集-->函数执行[参数后附加一个参数,比如:&search=1]-->页面刷新-->在页面加载完成后,检测search的值是否等于1,如果等于1,则调用函数;这样是不是符合你的意图??按你的逻辑,我猜测:你是不是想在用户浏览查询结果的时候,如果有符合查询条件新记录增加了,则让新记录也显示在查询结果内??如果是的话,建议你采用ajax进行局部的更新,没必要刷新整个页面
    我是要监控调度的运行状态,所以要不断地更新查询,ajax局部刷新当然是最好的选择,开始考虑用ajaxtable做,但是客户要求当一个调度运行失败后,要在该条记录的运行状态后动态的生成一个"重启"的标志,这样一来,ajaxtable做这个重启标志就麻烦了,还有没有什么好的方法。
      

  12.   

    要循环执行的话你可以把你的js函数在body 的onload时间里面调用。每次页面刷新的时候都会调用
      

  13.   

    ajaxtable应该是拼接dom而来的吧、你获取到数据之后判断重新拼接dom就行了啊。真心搞晕了。
      

  14.   

    setTimeout("函数名",时间);跟setInterval()没啥区别吧?前者为被动执行,后者为主动执行.所以,显然是有区别的你的流程应该目前是这样的:
    用户点击查询-->显示结果-->调用函数去更新结果集-->函数执行-->页面刷新;然后就停止了,因为你并没有在页面加载的时候默认执行那个函数所以,如果你就是想这样做的话,那么更改为:
    用户点击查询-->显示结果-->调用函数去更新结果集-->函数执行[参数后附加一个参数,比如:&search=1]-->页面刷新-->在页面加载完成后,检测search的值是否等于1,如果等于1,则调用函数;这样是不是符合你的意图??按你的逻辑,我猜测:你是不是想在用户浏览查询结果的时候,如果有符合查询条件新记录增加了,则让新记录也显示在查询结果内??如果是的话,建议你采用ajax进行局部的更新,没必要刷新整个页面大神,这个问题您能解答么?
    http://bbs.csdn.net/topics/390700456