setTimeout
延迟一段时间执行一次 (Only one
)setTimeout(function, milliseconds, param1, param2, ...)
setTimeout(fucntion(){},1000);
setTimeout('code',millisec)
clearTimeout()
// 阻止定时器运行
setTimeout(function(){ alert("Hello"); }, 3000); // 3s后弹出 setTimeout('alert("Hello");', 3000); // 3s后弹出
setInterval
每隔一段时间执行一次 (Many times
)setInterval(function, milliseconds, param1, param2, ...)
window.setInterval(function(){ alert("Hello"); }, 3000); // 每隔3s弹出
setTimeout
和setInterval
的延时最小间隔是4ms(W3C在HTML标准中规定);在JavaScript中没有任何代码是立刻执行的,但一旦进程空闲就尽快执行。这意味着无论是setTimeout还是setInterval,所设置的时间都只是n毫秒被添加到队列中,而不是过n毫秒后立即执行。
那么显而易见,setInterval(function, N) 这段代码意味着,每隔N秒把function事件推到消息队列中,什么时候执行?母鸡啊!