使用 Javascript,在使用更新函数的应用程序中,该函数针对每个渲染帧运行并寻求每一个最微小的优化:
如果想要经常运行代码并且时间的精度大多不重要,那么在使用 setTimeout
循环或仅在应用程序的更新函数中构建一个计时器之间是否有明智的选择?
例如,setTimeout
是否存在一些意外的计算成本,导致其速度明显变慢?或者,另一方面,setTimeout
是否会对应用程序产生积极影响,因为 Javascript 并不急于发生 setTimeout
回调?
最佳答案
使用时间戳差异比 setTimeout
更好,但您仍然需要渲染循环。因此,您可以使用 requestAnimationFrame
的时间戳差异作为参数发送给回调函数。
我希望这能回答您的问题。
另请记住(正如您提到的),setTimeout
被推迟到堆栈调用的末尾。这就是为什么在 node.js 中你有其他“延迟”函数的方法,并且你还有一种更快的方法来使用 process.hrtime
来计算时间戳差异。而不必使用 Date
对象。
长答案短是:
Use the parameter sent by
requestAnimationFrame
to the callback.
关于javascript - 使用 setTimeout 与比较更新循环上的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30522779/