次のグラフは、100 個の異なる要素で iframe を作成するのにどれくらいの時間がかかるかを示しています。 ![]() 100個の要素を作成する時間 iframe を使用するページには、通常、あまり多くの iframe が含まれていないため、DOM ノードの作成に費やされる時間は大きな割合を占めることはありません。しかし、オンロード イベントと接続プールなど、他のいくつかの問題が発生します。 Iframe はページの読み込みをブロックします ウィンドウの onload イベントを適切なタイミングでトリガーすることが非常に重要です。 onload イベントはブラウザの「ビジー」インジケーターを停止させ、現在の Web ページが読み込まれたことをユーザーに伝えます。 onload イベントが遅延すると、Web ページが非常に遅いという印象をユーザーに与えます。 すべての iframe (内部の要素を含む) が読み込まれた後に、window の onload イベントをトリガーする必要があります。 Safari と Chrome では、JavaScript を介して iframe の SRC を動的に設定することで、このブロックを回避できます。 接続プールのみ ブラウザは、Web サーバーへの接続を少数しか開くことができません。 Internet Explorer 6 および 7、Firefox 2 などの古いブラウザでは、一度に 1 つのホスト名に対して 2 つの接続しか開くことができません。この制限はブラウザの新しいバージョンでは増加されています。 Safari 3+ および Opera 9+ では、ドメインへの接続を 4 つ同時に開くことができます。Chrome 1+、IE 8、Firefox 3 では、ドメインへの接続を 6 つ同時に開くことができます。詳細なデータ テーブルについては、この記事「並列接続のまとめ」をご覧ください。 iframe には独自の接続プールがあると思われるかもしれませんが、そうではありません。ほとんどのブラウザでは、メイン ページとその中の iframe がこれらの接続を共有します。つまり、iframe はリソースを読み込むときに利用可能なすべての接続を使い果たし、メイン ページのリソースの読み込みがブロックされる可能性があります。もちろん、iframe 内のコンテンツがメイン ページのコンテンツよりも重要な場合は、これで問題ありません。しかし、通常、iframe 内のコンテンツはメイン ページのコンテンツほど重要ではありません。この時点で、iframe 内の利用可能な接続をすべて使い切る価値はありません。 1 つの解決策は、メイン ページの重要な要素が読み込まれた後に、iframe の SRC を動的に設定することです。 米国のトップ 10 の Web サイトはすべて iframe を使用しています。ほとんどの場合、広告を読み込むために使用されます。これは理解しやすく論理的な解決策であり、広告サービスを読み込む簡単な方法です。ただし、iframe はページのパフォーマンスに悪影響を与えることに注意してください。可能な限り、iframe の使用は避けてください。必要な場合は注意して使用してください。 出典:英語原文中国語訳: IT中毒 |
<<: Nginx プロセス スケジューリングの問題の詳細な説明
>>: CSS 変数に基づくテーマ切り替えに最適なソリューション (推奨)
B-Tree インデックスに加えて、MySQL は次のインデックスも提供します。ハッシュインデックス...
成果を達成する実装コードhtml <input type="radio" ...
必要: vue を使用して QR コードのスキャンを実現します。プラグイン: QRコードリーダー;プ...
編集者は最近、macOS システムを使い始めたかったので、VMware に macOS イメージ シ...
理由: MySQL 5.7.5 以降では機能依存関係の検出が実装されています。 only_full_...
マスタースレーブレプリケーションがなぜ必要なのでしょうか? 1. 複雑な業務システムでは、SQL 文...
私がこれまで携わってきた多くのプロジェクトでは、基本的に避けられない悪循環がありました。それは、ホー...
この記事では主に、MySQL の Aborted アラームに関する関連コンテンツを紹介し、参考と学習...
テーブル user があり、フィールドは id、nick_name、password、email、p...
歴史ルート履歴モードとは、HTML5 の履歴 API を使用してクライアント側ルーティングを実装する...
以下の質問はすべて InnoDB ストレージ エンジンに基づいています。 1. 最も大きな ID を...
インストールインストールするには、次のコマンドを入力します。 // ネプ npm で react-r...
環境に関する声明ホストOS: Cetnos7.9 最小インストールdocker バージョン: 20....
Vue でタブ切り替えを実装する 3 つの方法1. v-showはコンテンツの切り替えを制御します1...
製品デザインのプロセスにおいて、デザイナーは常に写真を非常に美しくすることを好みます。仮想ページのコ...