setTimeOut产生233 fps而requestAnimationFrame产生61

Pet*_*uza 6 javascript settimeout requestanimationframe

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

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

Dan*_*rka 12

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

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

帧率控制

MozBeforePaint每秒不会触发超过固定次数,例如50或60.这是故意的,因为现代操作系统和硬件不会让浏览器显示比这更多的帧.限制帧速率可避免浪费工作,从而节省CPU使用率和功耗,并提高整体系统性能.