1

iBooksで実行されるスクリプト化された電子書籍を作成しています。JSsetTimeoutやを使用してアニメーションを作成しrequestAnimationFrameます。アニメーションの実行が非常に遅い理由を広範囲にデバッグした後、要求した20〜50ミリ秒ではなく(デスクトップのChromeまたはSafariに入る)、タイマーが10倍以上の間隔で起動していることがわかりました。場合によっては1秒以上かかることもあります(これはsetTimeout、明らかにrequestAnimationFrame/webkitRequestAnimationFrameがiOSまたは少なくともiBooks化バージョンのWebkitでは利用できないためです)。

さらに調査したところ、これは明らかにiPadの問題ほどiBooksの問題ではないことがわかりました。iPadのSafariでも同様の粒度が見つかりました。ここで説明するように、これは遅いプロセッサの機能にすぎませんか(私はiPad 2でテストしています)?

または、これは、ここで説明するように、スクロール中に機能しないと報告されているsetTimeoutに関連していますか(私の場合はスクロールは含まれていません)?

ちなみに、私が行っているアニメーションの種類は、ハードウェアアクセラレーションの可能性があるCSSアニメーションを使用して実装できるものではありません。

結論として、iBooksでもSafariでも、iPadのJSでタイマーの粒度を細かくする方法を知っている人はいますか?

4

1 に答える 1

1

問題は、iBooksが最初に開いたときに本全体を読み、すべてのページを開いて(そしてスクリプトを実行して)いることでした。さらに、現在開いているページからのリクエストがバックグラウンドページの先読み作業よりも正しく優先されていないようです。そのため、先読みプロセスが終了するまで、スクリプトが多い大きな本のタイマーでは数十秒かかる可能性があります。現在のページの応答性(setTimeoutまたはrequestAnimationFrame)は、劇的に悪化する可能性があります。

于 2013-06-29T15:04:49.817 に答える