setTimeout setInterval


 

由他们各自代表的 setTimeout 函数表时指定的时间到了,执行某个指定的函数,这时候它的使命即告完成,只执行一次。setInterval 函数则是每隔指定的时间就会执行指定的函数,如果不清除,将执行无数次。setInterval函数的行为更像是很多编程语言中的Timer控件的行为。

  清除计数器的函数分别是 clearTimeout 和 clearInterval, 功能说明如下

var timer1 = setTimeout("foo",1000); //设定foo函数将在1000毫秒后执行一次
.........//do something
clearTimeout(timer1); //如果程序执行到这里,以setTimeout开始计数时1000毫秒未到,
                //clearTimeout后,foo将得不到执行
                //如果1000毫秒已过,foo已被触发执行,就没什么意义了
vartimer2 = setInterval("foo",1000); //设定从现在计时起,每1000毫秒执行1次foo
.........//do something
clearInterval(timer2); //以后foo将不再触发执行了

  所以这样一个细节的被忽略了,也就长久以来用setTimeout+递归来模拟了setInterval的行为,如下代码

function foo(){
  .......//do something
  setTimeout("foo",1000);
}

 

 

posted on 2011-01-21 16:01  http  阅读(171)  评论(0)    收藏  举报

导航