使用Javascript,在一个应用程序中,使用一个更新函数,运行每个渲染帧,并寻求每一个微小的优化:
如果一个人想要经常运行代码,而时间的精度几乎不重要,那么在使用setTimeout
循环或仅仅在应用程序的更新函数中构建计时器之间是否有一个明智的选择?
例如,setTimeout
是否有一些意想不到的计算成本,使其明显变慢?或者,在另一方面,setTimeout
会积极影响应用程序,因为Javascript不急于使setTimeout
回调发生?
使用时间戳差异比setTimeout
更好,但仍然需要有呈现循环。因此,您可以使用requestAnimationFrame
作为回调函数参数发送的时间戳差异。
我希望这能回答你的问题。
还请记住(正如您提到的),setTimeout
被推迟到堆栈调用的末尾。这就是为什么在node.js中你有其他的方法来"延迟"函数,而且你也有一个更快的方法来计算时间戳的差异,通过使用process.hrtime
而不是使用Date
对象。
长话短说就是:
使用
requestAnimationFrame
发送给回调的参数