我有类似以下内容:

var myTimeout;
function delayStuffUntil( when ){
  if( myTimeout) clearTimeout( myTimeout );
  myTimeout = setTimeout( stuff, when - Date.now() );
}
delayStuffUntil将被称为一笔交易,并且很有可能连续多次使用相同的when值对其进行调用。
setTimeout / clearTimeout是否足够昂贵,以至于我不应该将自己的when的上一个值与当前when进行比较(并且仅在不同时更改计时器)?

我曾考虑过这样做,但事实是when的比较有点麻烦,而且我认为过早的优化是万恶之源,因此我可能在不需要时就开始工作。

最佳答案

setTimeoutclearTimeout本身并不是很昂贵。

实际上,您需要担心的是“东西”功能。

如果东西需要很长时间才能运行,那么如果它被频繁调用,可能会阻塞UI。

关于javascript - setTimeout/clearTimeout昂贵吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9072472/

10-12 12:35
查看更多