Javascript setTimeout/clearTimeout是否昂贵?
我有如下几点:Javascript setTimeout/clearTimeout是否昂贵?,javascript,Javascript,我有如下几点: var myTimeout; function delayStuffUntil( when ){ if( myTimeout) clearTimeout( myTimeout ); myTimeout = setTimeout( stuff, when - Date.now() ); } delayStuffUtil将被大量调用,并且它很可能会在一行中多次被调用时使用相同的值 setTimeout/clearTimeout是否足够昂贵,以至于我应该费心检查当前的whe
var myTimeout;
function delayStuffUntil( when ){
if( myTimeout) clearTimeout( myTimeout );
myTimeout = setTimeout( stuff, when - Date.now() );
}
delayStuffUtil
将被大量调用,并且它很可能会在一行中多次被调用时使用相同的值
setTimeout
/clearTimeout
是否足够昂贵,以至于我应该费心检查当前的when
与上次的when
值(并且只有在不同时才更改计时器)
我曾想过这样做,但事实是,when
比较起来有点麻烦,我认为过早的优化是所有问题的根源,所以我可能在不需要的时候就开始工作。设置超时
和清除超时
本身并不昂贵
实际上,功能“东西”是你必须担心的
如果stuff需要很长时间才能运行,那么如果调用太频繁,它可能会阻塞UI。所以我发现了一些性能问题,在鼠标移动时调用clearTimeout和setTimeout(在chrome上)。它似乎比你想象的要贵。不知道为什么 我没有关于setTimeout
和cleartimout
的基准,但我倾向于说“不”,因为它们在每个JS动画框架中的级别都很低代码>stuff
将被调用相同的次数。谢谢