requestAnimationFrame
在屏幕准备好重绘时被调用。
在现代屏幕上,刷新率可能比每秒 60 帧高很多。如果这些调用中发生了很多事情 - 它可能会影响应用程序的整体性能。
所以我的问题是:requestAnimationFrame
是否应始终被限制为 60FPS?人眼真的能分辨出 16 毫秒和 8 毫秒重绘延迟之间的区别吗?
[更新] 我最终将其降低到 60FPS,以便在高刷新率的屏幕上获得更高的性能。 并且会向在 rAF 调用中有很多事情的每个人推荐这种方法。 当然,您应该进行自己的测试。
最佳答案
根据 MDN它不一定总是 60 FPS。
相关引用:
This will request that your animation function be called before the browser performs the next repaint. The number of callbacks is usually 60 times per second, but will generally match the display refresh rate in most web browsers as per W3C recommendation. The callback rate may be reduced to a lower rate when running in background tabs.
至于人眼能否区分 60 和 120 FPS,嗯,这是一个开放的、固执己见的问题。有些人声称看到了,有些人则声称不可能。允许最终用户选择(或简单地充分利用他们的硬件)可能是最好的。
作为markE's comment指出。 requestAnimationFrame
回调收到 DOMHighResTimeStamp
这是一个精确到“thousandth of a millisecond.”的高精度计时器。通过使用这个时间戳,并计算帧之间的增量,您可以将刷新率调整到任何所需的值。
引用资料:
注意:请记住对任何反对票发表评论,否则它们不是有用的反馈。
关于javascript - requestAnimationFrame 调用是否应始终被限制为 60 FPS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26120838/