我在Chrome上进行了一些测试,requestAnimationFrame
在setTimeOut( callback, 0 )
时产生了61 fps,产生了233 fps。
如果你想拥有超过61 fps(我不知道是为了什么),但用setTimeOut渲染并且只是使用requestAnimationFrame检测窗口何时失去焦点然后停止超时直到焦点不会更好回报?
还有一个问题:除了requestAnimationFrame没有调用回调之外,还有另一种方法可以检测窗口何时失去焦点吗?
答案 0 :(得分:12)
请求动画帧与您的显示器刷新率同步(没有用于动画比您在屏幕上实际显示的帧数更多的帧)
以下是来自mozilla文档的参考:https://developer.mozilla.org/en/DOM/Animations_using_MozBeforePaint
帧率控制
MozBeforePaint每次点火的次数不会超过固定次数 第二,例如50或60.这是故意的,因为现代化的经营 系统和硬件不会让浏览器显示更多的帧 无论如何。限制帧速率可避免浪费工作 节省CPU使用率和功耗,提高整体系统性能。