在jsp页面中,我用<meta http-equiv="refresh" content="10"> 来实现每10秒钟,页面自动刷新一次! 现在需求改变了,问题来了 :
1. 我在页面上生成一个按钮,怎样实现点击按钮后,该页面就停止刷新了!2.怎样实现用户自己设置刷新时间!在页面上生成一个下拉框(10s,15s,20s .....)当用户选择10s时,页面10秒刷新一次;当选择20s时,页面20秒刷新一次! 谢谢大家了

解决方案 »

  1.   

    通过JavaScript控制<SCRIPT LANGUAGE="JavaScript">
    <!--
    function refresh() {
    history.go(0);
    }
    var t = setTimeout("refresh()", 1000);
    //-->
    </SCRIPT>
    <INPUT TYPE="button" onclick="clearTimeout(t);return false;">
      

  2.   

    唉,这个还不是一样简单?<SCRIPT LANGUAGE="JavaScript">
    <!--
    function refresh() {
    history.go(0);
    }
    var t = setTimeout("refresh()", <%=request.getParameter("time") == null ? "10" : request.getParameter("time")%>);
    //-->
    </SCRIPT>
    <INPUT TYPE="button" onclick="clearTimeout(t);return false;">
    <FORM METHOD=POST name="refreshForm">
    <SELECT NAME="time" onchange="refreshForm.submit()">
    <OPTION value="10">10s</OPTION>
    <OPTION value="15">15s</OPTION>
    <OPTION value="20">20s</OPTION>
    </SELECT>
    </FORM>
      

  3.   

    果然好用啊! 佩服啊! 不过,现在又有个问啊, 我页面上的数据是不断变化的。页面刚打开,采用默认的时间刷新时,没有问题! 但是,选择10s或15s .... 自己设置刷新时间时,一刷新,页面就会弹出对话框 “不重新发送信息,则无法刷新网页,清单击重试再次发送信息,点击取消返回正在察看的页面” 。 我必须点击“重试”才能完成刷新啊! 我原来用 <meta http-equiv="refresh" content="10"> 则不会出现上诉情况!   这个应该怎么解决啊? 非常感谢
      

  4.   

    将他的代码以下内容改为: window.location.href="本页地址";
    history.go(0);
      

  5.   

    方法一:
    那就用session来判断吧。
    1表示自动刷新,0表示不自动刷新。
    主要是0的时候,就把自动刷新脚本过滤掉。方法二:
    用XMLHttp方式,可以做到无刷新更新。我曾经XMLHttp方式自动更新一个页面上4百多行的table,速度超快。
      

  6.   

    725137(2006年不会菜)这位大侠,你的“将他的代码以下内容改为: window.location.href="本页地址";
    history.go(0);

    这种方法好像不行啊! 改过之后,一进入页面就开始不停的刷新,根本就看不到页面上的内容了啊! 还有什么别的办法能解决“弹出重试对话框的问题啊”  谢谢大侠了
      

  7.   

    怎么可能呢?
    是叫你把history.go(0)替换为
    window.location.href="本页地址";不是要你增加这么一句。!!!!!!!!
      

  8.   

    老大 还是有问题啊! 原码如下: 
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function refresh() {
    window.location.href="./curAllDevicesLinksStat.html";}
    var t = setTimeout("refresh()", <%=request.getParameter("time") == null ? "6000" : request.getParameter("time")%>);
    //-->
    </SCRIPT>
    <INPUT TYPE="button" onclick="clearTimeout(t);return false;">
    <FORM METHOD=POST name="refreshForm">
    <SELECT NAME="time" onchange="refreshForm.submit()"><OPTION value="3000">3s</OPTION>
    <OPTION value="15000">15s</OPTION>
    <OPTION value="25000">25s</OPTION>
    </SELECT>
    </FORM>
    我默认设置的是6秒一刷新! 现在可以进入到页面,选择15s后,页面第一次刷新的时间为15s,第一次刷新后,第二次的刷新时间又变回原来的默认的6秒钟了啊! 也就是用户选择后,只能刷新一次,然后就会变成默认的刷新时间! 这个怎么解决啊??
      

  9.   

    要是用原来的history.go(0); 代替 window.location.href="./curAllDevicesLinksStat.html";则可以达到选择15s,以后页面全都按照每15s一刷新 ,但是会弹出那个“重试对话框”。 有什么办法可以既不弹出对画框还可以按照用户选择的时间页面来刷新啊? 各位大侠帮帮我啊
      

  10.   

    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function change(time) {
        setTimeout(("refresh()", time);
    }//-->
    </SCRIPT>
    <INPUT TYPE="button" onclick="clearTimeout(t);return false;">
    <SELECT NAME="time" onchange="change(this.value)">
    <OPTION value="3000">3s</OPTION>
    <OPTION value="15000">15s</OPTION>
    <OPTION value="25000">25s</OPTION>
    </SELECT>
      

  11.   

    是我太笨了啊~~ sqz007(孙权) 这位大侠给我的代码是直接就可以用 还是需要结合我上边的代码一起来用啊? 我直接用好像代码本身有错误啊! 请大侠给我写详细点啊! 非常感谢了啊~~
      

  12.   

    第一步
    <%
    String iTime = request.getParameter("time");//获取参数
    if(iTime != null)
    {
       //没有参数,表示第一次访问
       //设置默认隔3秒刷新
       iTime = "3000";
    }
    else
    {
       //存在参数
       //直接取该参数,不做处理
    }
    %>第二步
    <SCRIPT LANGUAGE="JavaScript">//修改默认参数,自动执行刷新
    change('<%= iTime%>');function change(time)
    {
        setTimeout(("refresh()", time);
    }</SCRIPT>第三步
    <INPUT TYPE="button" onclick="javascript:window.location.href:'本页面.jsp?time=0" value="停止刷新"><select name="select" style="width:100px;" onchange="javascript:window.location.href:'本页面.jsp?time='+this.options[this.selectedIndex].value">
    <OPTION value="3000">3s</OPTION>
    <OPTION value="15000">15s</OPTION>
    <OPTION value="25000">25s</OPTION>
    </SELECT>另外,我不知道把时间设置成0是否能停止刷新,你自己试试看
      

  13.   

    修正一下,
    if(iTime != null)
    应改为
    if(iTime == null)
      

  14.   

    谢谢各位大侠啊。哎,还是不行啊! 这么简单的一个问题我怎么就搞不清楚呢!怎么才能保持状态呢? 就是用户设置15s刷新以后每次都是15s刷新,不停的刷! 而现在是只是第一次以15s刷新,第二次右变回原来的默认时间刷新了!