日期:2014-05-16  浏览次数:20315 次

JS计时器setTimeout()与setInterval()方法的区别

计时器setTimeout()与setInterval ()是原生JS 很重要且用处很多的两个方法, 但很多人一直误以为是相同的功能:? 但实际上, 并非如此, 既然JS给出了两个不同的命名, 肯定有其迥异之处.
先来看看两者JS手册及英文词典上的解释:
JS手册?setTimeout() : 用于在指定的毫秒数后调用函数或计算表达式;
英文释义?timeout() : 超时;暂时休息;工间休息;
JS手册?setInterval() : 按照指定的周期(以毫秒计)来调用函数或计算表达式. 会不停地调用函数,直到 clearInterval () 被调用或窗口被关闭;
英文释义?interval() : 间隔;间距;幕间休息;
不难看出, 只要我们仔细体会JS手册及命名释义, 就能很容易的区分开两者的区别. 简单的说, 两才的区别在于, setTimeout()方法是在等待指定时间后执行函数, 且只执行一次传入的句柄函数. setInterval()方法是每指定间隔时间后执行一次传入的句柄函数,循环执行直至关闭窗口或clearInterval().

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

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


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

?

?

setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。

带参数方法使用setTimeout要注意,setTimeout("函数名("+参数+")",毫秒数),这里的参数只能是字符串形式的,