您好,欢迎访问一九零五行业门户网

Javascript中setTimeOut和setInterval的定时器用法_javascript技巧

javascript的settimeout和setinterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请求获取最新数据等等。但它们的应用是有区别的。
settimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setinterval()则是在每隔指定的毫秒数循环调用函数或表达式,直到clearinterval把它清除。也就是说settimeout()只执行一次,setinterval()可以执行多次。两个函数的参数也相同,第一个参数是要执行的code或句柄,第二个是延迟的毫秒数。
settimeout用法
settimeout函数的用法如下:
复制代码 代码如下:
var timeoutid = window.settimeout(func, [delay, param1, param2, ...]);
var timeoutid = window.settimeout(code, [delay]);
timeoutid:定时器id号,它可以在cleartimeout()函数中被用来清除定时器。
func:被执行的函数。
code:(替代的语法)一个被执行的代码串。
delay:延迟的时间,单位毫秒。如果没有指定,默认为0。
我们可以使用window.settimeout或settimeout,两个写法基本一样,只不过window.settimeout将settimeout函数作为全局window对象的一个属性来引用。
应用示例:
复制代码 代码如下:
function timeout(){
    document.getelementbyid('res').innerhtml=math.floor(math.random()*100 + 1);
}
settimeout(timeout(),5000);
代码执行时,5秒后调用timeout()函数,点击看演示。
setinterval用法
setinterval函数的参数及用法和settimeout函数一样,请参照上文的settimeout函数的用法介绍。不同的是,setinterval每隔一定的时间执行当中的func或code代码。
应用示例:
复制代码 代码如下:
var tt = 10;
function timego(){
    tt--;
    document.getelementbyid(tt).innerhtml = tt;
    if(tt==0){ 
        window.location.href='/';
        return false;
    }
}
var timer = window.setinterval(timego(),1000);
函数timego()定义了页面元素#tt显示的内容,当tt等于0时,页面定向到首页。然后我们定义一个定时器timer,使用setinterval()每隔1秒调用一次timego()。这样timego会执行10次,每次数字tt会减1,直到为0。那么如果想停止定时器,可以使用以下代码:
复制代码 代码如下:
window.clearinterval(timer);
代码执行时,10秒后页面跳转到首页
其实settimeout()也可以实现每隔一段时间重复执行某个函数,但我们还是简单的区别使用settimeout和setinterval。另外javascript都是以单线程的方式运行于浏览器的javascript引擎中,实际应用中复杂的任务中需要排队执行,这就可能导致定时器时间不准,这个问题在大型应用中需要考虑,本文不做深究。
以上所述就是本文的全部内容了,希望大家能够喜欢。
其它类似信息

推荐信息