2011-12-21 46 views
6

我在Chrome上做了一些測試,​​產生61fps,而setTimeOut(callback, 0)產生233fps。
如果有人想要超過61 fps(我不知道該怎麼辦),但用setTimeOut渲染並不是更好,只是使用requestAnimationFrame來檢測窗口何時失去焦點,然後停止超時焦點返回?setTimeOut產生233幀/秒,而requestAnimationFrame產生61

另一方面的問題:有沒有另一種方法來檢測窗口失去焦點,而不是requestAnimationFrame不調用回調?

回答

12

請求動畫幀同步與顯示器刷新率(有沒有用動畫幀數比你實際上是顯示在屏幕上)

下面是從Mozilla的文檔的引用:https://developer.mozilla.org/en/DOM/Animations_using_MozBeforePaint

幀率控制

MozBeforePaint每 秒不會發射超過固定次數,例如50或60.這是故意的,因爲無論如何,現代操作系統和硬件不會讓瀏覽器顯示比 更多的幀。限制幀速率可以避免浪費工作,從而節省CPU使用量和功耗並提高整體系統性能。