在setInterval和setTimeout在Javascript中使用的讨论

在setInterval和setTimeout在Javascript中使用的讨论
当谈到setInterval,我们不得不提到setTimeout。这两个函数用于在固定的时间执行函数。不同的是,setTimeout和setInterval只执行一次,可连续执行。典型用法如下:
功能do_sth(){ console.log(你好…);}
setTimeout(do_sth,2500); / / 2.5秒的do_sth功能实施后(只有一次)
setInterval(do_sth,3500); / / 3.5秒的do_sth功能实施后(每3.5秒一次,继续)

表面上看来,两者都有各自的用途,并没有问题。但如果执行setInterval函数是费时,setInterval仍将按照原计划调用该函数,而不考虑任何阻碍,所以,随着时间的推移,会有越来越多的功能等在队列执行。解决这个问题仍然是一个方式调用setTimeout递归,如:
功能do_sth(){
console.log(你好…)执行耗时的操作,即使没有问题,
这里将表演/调用setTimeout

setTimeout(do_sth,2500); / /后续执行
}

(do_sth); / /第一次执行

这种递归调用不仅可以达到循环功能的目的,而且可以防止后续任务的积累。

如果你觉得这种方式有点罗嗦,你还可以多写一点。
(函数(){())
console.log(你好…),在这里做某事
setTimeout(arguments.callee,2500);
});

以这种方式,但如果经常执行的开销非常小,setInterval一般是没有问题的,但如果任务的成本是比较大的,确保你使用setTimeout。

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部