setTimeOut产生233 fps而requestAnimationFrame产生61

时间:2011-12-21 14:56:50

标签: javascript settimeout requestanimationframe

我在Chrome上进行了一些测试,requestAnimationFramesetTimeOut( callback, 0 )时产生了61 fps,产生了233 fps。 如果你想拥有超过61 fps(我不知道是为了什么),但用setTimeOut渲染并且只是使用requestAnimationFrame检测窗口何时失去焦点然后停止超时直到焦点不会更好回报?

还有一个问题:除了requestAnimationFrame没有调用回调之外,还有另一种方法可以检测窗口何时失去焦点吗?

1 个答案:

答案 0 :(得分:12)

请求动画帧与您的显示器刷新率同步(没有用于动画比您在屏幕上实际显示的帧数更多的帧)

以下是来自mozilla文档的参考:https://developer.mozilla.org/en/DOM/Animations_using_MozBeforePaint

  

帧率控制

     

MozBeforePaint每次点火的次数不会超过固定次数   第二,例如50或60.这是故意的,因为现代化的经营   系统和硬件不会让浏览器显示更多的帧   无论如何。限制帧速率可避免浪费工作   节省CPU使用率和功耗,提高整体系统性能。