`

setTimeout和setInterval

 
阅读更多

setTimeout()和setInterval()区别:

setTimeout(function,时间)只调用一次。而setInterval(function,时间)每隔一段时间就调用。

从用setTimeout()做定时器因为嵌套setTimeout()方法内部本身的逻辑不再调用setTimeout就等于停止了。

而使用setInterval()必须手动停止click触发。

这两种方法可能看起来非常像,而且显示的结果也会很相似,不过两者的最大区别就是,setTimeout方法不会每隔5秒钟就执行一次showTime函数,它是在每次调用setTimeout后过5秒钟再去执行showTime函数。这意味着如果showTime函数的主体部分需要2秒钟执行完,那么整个函数则要每7秒钟才执行一次。而setInterval却没有被自己所调用的函数所束缚,它只是简单地每隔一定时间就重复执行一次那个函数。

如果要求在每隔一个固定的时间间隔后就精确地执行某动作,那么最好使用setInterval,而如果不想由于连续调用产生互相干扰的问题,尤其是每次函数的调用需要繁重的计算以及很长的处理时间,那么最好使用setTimeout。

讨 论

 

如果对计时函数不加以处理,那么setInterval将会持续执行相同的代码,一直到浏览器窗口关闭,或者用户转到了另外一个页面为止。不过还是有办法可以终止setTimeout和setInterval函数的执行。

对于使用clearInterval来停止先不考虑。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics