5

Chromeでいくつかのテストを行ったところ、requestAnimationFrame61 fpsがsetTimeOut( callback, 0 )得られましたが、233fpsが得られました。
61 fpsを超えたい場合(これは何のためにあるのかわかりません)、setTimeOutでレンダリングし、requestAnimationFrameを使用してウィンドウがフォーカスを失ったことを検出し、フォーカスが来るまでタイムアウトを停止する方がよいでしょう。戻り値?

そして副次的な質問:requestAnimationFrameがコールバックを呼び出さない以外に、ウィンドウがフォーカスを失ったことを検出する別の方法はありますか?

4

1 に答える 1

12

アニメーションフレームのリクエストはモニターのリフレッシュレートと同期しています(実際に画面に表示されているよりも多くのフレームをアニメーション化する必要はありません)

これがmozillaドキュメントからの参照です:https ://developer.mozilla.org/en/DOM/Animations_using_MozBeforePaint

フレームレートコントロール

MozBeforePaintは、1秒間に一定の回数(たとえば50回または60回)を超えて起動することはありません。これは意図的なものです。最新のオペレーティングシステムとハードウェアでは、ブラウザにそれ以上のフレームを表示させることができないためです。フレームレートを制限すると、作業の無駄がなくなり、CPU使用率と電力が節約され、システム全体のパフォーマンスが向上します。

于 2011-12-21T14:58:31.413 に答える