2

まず、明確にするために、この質問はオンロード ページ レンダリングのパフォーマンスに関するものではありません。

私は、SVG と多くの JavaScript を使用している Web アプリケーション (HTML5、SVG、CSS3 & Js) に取り組んでいます。ドラッグが著しく遅くなり、アプリケーションを最適化するために、既存のすべての機能に戻って書き直して確認する必要があります。

私のチーム メイトの 1 人は、ブラウザが別のスレッドで機能を処理するため、iframe に機能をロードした場合、Web アプリケーションはあまり影響を受けないだろうと考えています。したがって、既存の Web アプリケーション タブは、 iframe コンテンツのレンダリングと更新。さらに、iframe のコンテンツは、必要に応じて div で簡単にレンダリングできます。

私の質問は、iframe を処理するときに、ブラウザー (最新かつ最高のコース) がレンダリングとパフォーマンスのために別々のリソースを割り当てるというのは本当ですか? この質問では、アプリケーションの読み込みは問題になりません。

4

2 に答える 2

3

ここで古いスレッドに飛びつくのは嫌いですが、受け入れられた答えは誤解を招くものです。あなたの友人は正しかった: iframe は効果的にサンドボックス化されているため、レンダリング プロセスは独立しており、非同期であり、最新のブラウザーではマルチスレッド化されています。したがって、アプリの一部を iframe に分割しても、JavaScript の実行速度は向上しませんが、各ページ コンポーネントの DOM を分割して簡素化することで、レンダリングパフォーマンスが向上する可能性は十分にあります。

参考までに、Sencha のエンジニアが夜のプロジェクトとして数週間にわたってまとめたFastbook に関するストーリーをチェックしてください。これは、Facebook Web アプリが大幅に最適化された可能性があることを示すためのものです。とりわけ、レンダリングをサンドボックス化するために iframe を使用しました。

余談ですが、これは実際にはブラウザの動作方法ではありません。(たとえば、Chrome チームは、パフォーマンスを向上させるために iframe が必要な場合にバグを報告することを人々に勧めています。) それでも、当面の間は、複雑なアプリ、特に複数の「パネル」とリフロー率の高いアプリのベスト プラクティスです。

于 2013-06-10T23:09:38.757 に答える
1

同じドメイン<iframe>は、同じスレッドで実行されることが保証されています。

ブラウザーは、相互に対話できない場合、異なるスレッドで 2 つのページしか実行できません。

于 2012-07-04T14:15:29.253 に答える