定时刷新页面SetInterval 和setTimeout -时间间隔可以动态设定

摘要:
在JS中设置延迟:使用SetInterval类似于设置延迟函数setTimeout。setTimeout用于将某个操作延迟一段时间。SetTimeout设置超时对象setInterval将超时对象setInterval设置为自动重复,SetTimeout不会重复。ClearTimeout(object)清除setTimeout对象clearInterval(object)清理已设置的setInterval对象示例1:将其放在js代码中,加载后设置页面,时间结束后刷新整个页面。缺点是刷新间隔不能动态改变。

JS里设定延时:

使用SetInterval和设定延时函数setTimeout 很类似。setTimeout 运用在延迟一段时间,再进行某项操作。

setTimeout("function",time) 设置一个超时对象       setInterval("function",time) 设置一个超时对象

SetInterval为自动重复,               setTimeout不会重复。

clearTimeout(对象) 清除已设置的setTimeout对象    clearInterval(对象) 清除已设置的setInterval对象

举例 1、:放到js代码中,页面加载完就设定了,时间到就刷新整个页面,缺点是无法动态更改刷新间隔。

function myrefresh() { window.location.reload(); } 
setTimeout('myrefresh()',5000); //指定5秒刷新一次

  方法二、 :<head><meta http-equiv="refresh" content="60"></head> 

====为了实现可以更改动态修改刷新间隔【上面的方法是做不到的】

分析:因为本页面是用jsp 方式,没有用到异步刷新填充数据,目前很有局限性。

改造:方法1、不要刷新整个页面,定时触发ajax请求数据回来 动态创建表格填充数据;

    方法2、用iframe的方式,弄成多页面的感觉,js 定时刷新 iframe里面的页面

方法3、还是采用目前方式,变通一下。动态参数通过请求地址参数 传递。js代码如下:

定时刷新页面SetInterval 和setTimeout -时间间隔可以动态设定第1张

$(function() {
    //先定义一个静态方法getUrlParam(拓展工具)的方式
    (function($) {
        $.getUrlParam = function(name) {
            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
            var r = window.location.search.substr(1).match(reg);
            if (r != null)
                return unescape(r[2]);
            return null;
        }
    })(jQuery);
    var xx = $.getUrlParam('pn');//获取参数 大于0才设定,如果为0视为停止刷新
    if (xx > 0) { 
        setTimeout('myrefresh1(' + xx + ')', xx);//设定本次定时间隔
    }

});

function queryItems() {
    document.itemsForm.action = "${pageContext.request.contextPath }/coins/list.action";
    document.itemsForm.submit();
}
function myrefresh1(interval) {
    // window.location.reload();改用下方方法
    self.location = 'list?pn=' + interval;//将时间间隔作为请求参数,controller中并不使用它
}
var st;
function StartReflesh() {
    var time = document.getElementById("selectTime").value;//js获取值
    st = setInterval('myrefresh1(' + time + ')', time);//设定定时间隔,并把 间隔传参给地址
}
function EndReflesh() {
    // clearInterval(st);
    self.location = 'list?pn=0';//停止刷新时参数 pn是为0
}

 其实不断刷新页面是很不好的,最好异步请求数据 填充。 后续改善,待更新.....

免责声明:文章转载自《定时刷新页面SetInterval 和setTimeout -时间间隔可以动态设定》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySQL三种备份1-匿名对象下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

跳转页面、alert弹窗、setTimeout使用、setInterval使用、repeater日期格式设置

cs后台跳页面: Response.Write("<script>window.location.href='http://t.zoukankan.com/Default2.aspx';</script>"); 或者 Response.Redirect("Default2.aspx"); cs后台弹窗提示:  Response.Wr...

Fortify漏洞修复总结

  1.代码注入 1.1 命令注入 命令注入是指应用程序执行命令的字符串或字符串的一部分来源于不可信赖的数据源,程序没有对这些不可信赖的数据进行验证、过滤,导致程序执行恶意命令的一种攻击方式。 问题代码: $dir = $_POST['dir'] exec("cmd.exe /c dir" + $dir); 修复方案:(1)程序对非受信的用户输入数据...

Node.js 事件循环

本文地址 http://www.cnblogs.com/jasonxuli/p/6074231.html   原文:https://github.com/nodejs/node/blob/master/doc/topics/event-loop-timers-and-nexttick.md     >>> 文末有简单总结       什...

javascript之函数节流

函数节流原理:   设置一个定时器setTimeout,让执行的函数延缓一段时间之后再去执行,如果在这段时间内,该函数又触发了,那就清除原来的setTimeout,创建一个新的setTimeout,依此类推下去,就执行了函数节流。 函数封装: 1 function throttle(method, context) { 2 clearTimeou...

网页定时器setTimeout( )

不斷重複執行的 setTimeout( ) setTimeout( ) 預設只是執行一次, 但我們可以使用一個循環方式, 使到一個setTimeout( ) 再啟動自己一次, 就會使到第二個 setTimeout( ) 執行, 第二個又啟動第三個, 這樣循環下去, 這setTimeout( ) 就會不斷執行。 練習-71 自動每秒加 1 的 functio...

ES6规范

一、简介 js由三部分组成:ES+DOM(文档对象模型)+ BOM(浏览器对象模型) ES作为核心,是一套标准,规范了语言的组成部分:语法、类型、语句、关键字、保留字。定义了数据结构和语法,定义了函数和对象的实现,包括原型链和作用域链的机制和实现。 JavaScript 的核心 ECMAScript 描述了该语言的语法和基本对象; DOM 描述了处理网页内...