概述
JavaScript中提供了两种定时器setTimeout()与setInterval(),既然JavaScript提供了两个方法,那么这两个方法有什么区别吗?今天我们来看一下。
setTimeout() :
setTimeout() 只执行 code 一次,不明白的话看下面的代码:
function uw3cTimed()
{
var i = 1;
var t=setTimeout(function(){
document.write(i)
i++;
},1000)
}
uw3cTimed();
setInterval():
setInterval()会执行N回,只要你不停止,它就会一直执行。
function uw3cTimed()
{
var i = 1;
var t=setInterval(function(){
document.write(i)
i++;
},1000)
}
uw3cTimed();
虽执行上面的代码,你会看到页面中每1秒钟就会追加一个数:1 2 3 4 5 6 7…直到你停止计时器或者关闭页面。
如何用setTimeout()实现setInterval()的效果:
看到上面的区别了吧,但是我用的是setTimeout(),我偏要实现setInterval()的效果怎么办?看下面的代码:
var i = 1;
function uw3cTimed()
{
var t=setTimeout(function(){
document.write(i)
i++;
uw3cTimed();
},1000)
}
uw3cTimed();
如何停止计时器:
既然了解了计时器,那我们应该如何停止或者满足某个条件的时候停止呢?
function uw3cTimed()
{
var i = 1;
var t=setInterval(function(){
document.write(i)
if(i == 5){
clearTimeout(t)
}
i++;
},1000)
}
uw3cTimed();
看到了吧,当i==5的时候自动停止。
(对比了一些百度上的讲解,我把两者区别讲得比较通俗易懂,简洁明的分享给大家。转自这里)