使用setTimeout vs比较更新循环上的时间戳

时间:2015-05-29 06:40:20

标签: javascript performance time

使用Javascript,在一个应用程序中,该应用程序使用为每个渲染帧运行的更新函数并寻求每一分钟的优化:

如果想要经常运行代码并且时间精度大多不重要,那么在使用setTimeout循环还是仅在应用程序的更新函数中构建计时器之间是否有明智的选择?

例如,setTimeout是否有一些意想不到的计算成本会使它明显变慢?或者,另一方面,setTimeout会对应用程序产生积极影响,因为Javascript并不急于进行setTimeout回调吗?

1 个答案:

答案 0 :(得分:0)

使用时间戳差异优于setTimeout,但仍需要渲染循环。因此,您可以将requestAnimationFrame作为参数发送的时间戳差异用于回调函数。

我希望这能回答你的问题。

另请注意(正如您所提到的),setTimeout被推迟到堆栈调用的末尾。这就是为什么在node.js中你有其他“延迟”函数的方法,而且你有一个更快的方法来计算时间戳差异,使用process.hrtime而不必使用Date对象。

长答案是:

  

使用requestAnimationFrame发送给回调的参数。