Chromeでいくつかのテストを行ったところ、requestAnimationFrame
61 fpsがsetTimeOut( callback, 0 )
得られましたが、233fpsが得られました。
61 fpsを超えたい場合(これは何のためにあるのかわかりません)、setTimeOutでレンダリングし、requestAnimationFrameを使用してウィンドウがフォーカスを失ったことを検出し、フォーカスが来るまでタイムアウトを停止する方がよいでしょう。戻り値?
そして副次的な質問:requestAnimationFrameがコールバックを呼び出さない以外に、ウィンドウがフォーカスを失ったことを検出する別の方法はありますか?