HTML Webページ作成チュートリアル iframeタグを慎重に使用してください

HTML Webページ作成チュートリアル iframeタグを慎重に使用してください

iframe を使用すると、他の Web サイトのページを簡単に呼び出すことができますが、注意して使用する必要があります。他の DOM 要素 (スタイルやスクリプトを含む) を作成する場合よりも、パフォーマンスが数十倍、場合によっては数百倍も高くなります。 100 個の異なる要素を追加するのにかかる時間を比較すると、iframe がいかにパフォーマンスを集中的に消費するかがわかります。

iframe を使用するページには、通常、それほど多くの iframe がないため、DOM の作成にかかる時間をそれほど気にする必要はありません。さらに懸念されるのは、onload イベントと接続プールです。

iframe ブロック onload

ウィンドウの onload イベントができるだけ早く実行されることが非常に重要です。これにより、ブラウザの読み込み進行状況インジケーターが完了し、ユーザーはこれを使用してページが読み込まれたかどうかを判断します。 onload イベントが遅延すると、ユーザーはページが遅いと感じるでしょう。

ウィンドウの onload イベントは、ウィンドウに含まれるすべての iframe と iframe 内のすべてのリソースが完全に読み込まれるまでトリガーされません。 Safari と Chrome では、JavaScript を使用して iframe の src 値を動的に割り当てることで、このブロック動作を回避できます。

接続プール

ブラウザは各 Web サーバーに対してごく少数の接続のみを開きます。 IE 6/7 や Firefox 2 などの古いブラウザでは、ホストごとに接続が 2 つしかありません。新しいブラウザでは、接続数が急増します。 Safari 3+ および Opera 9+ は 4 に増加し、Chrome 1+、IE 8、Firefox 3 は 6 に増加しました。

iframe ごとに個別の接続プールがあると思われるかもしれませんが、そうではありません。ほとんどのブラウザでは、接続はメイン ページとその iframe 間で共有されます。つまり、iframe 内のリソースが利用可能な接続を占有し、メイン ページのリソースの読み込みをブロックする可能性があります。 iframe 内のコンテンツがメイン ページと同等かそれ以上に重要な場合は、これで問題ありません。ただし、一般的に、iframe 内のコンテンツはページにとってそれほど重要ではないため、iframe が接続番号を占有することはお勧めできません。 1 つの解決策は、優先度の高いリソースのダウンロードが完了した後に、iframe の src 値を動的に割り当てることです。

米国のトップ 10 ウェブサイトのうち 5 つは iframe を使用しています。主に広告を読み込むために使用されます。これはあまり適切ではありませんが、理解できるものであり、コンテンツに広告を挿入する簡単な方法です。多くの場合、iframe を使用することは理にかなっています。ただし、これがページのパフォーマンスに及ぼす影響に注意してください。必要でない限りは注意してご使用ください。

<<:  CSSページ下部固定を実現する8つの方法の詳細な説明

>>:  react+antd.3x は IP 入力ボックスを実装します

推薦する

シンプルなショッピングフォームを実装するJavaScript

この記事では、簡単なショッピングフォームを実装するためのJavaScriptの具体的なコードを参考ま...

MySQL における count(*)、count(1)、count(col) の違いのまとめ

序文count 関数は、テーブルまたは配列内のレコードをカウントするために使用されます。count(...

ウェブページの右下隅に「いいね!」カード効果を実現するための CSS (サンプルコード)

効果 HTML を実装するには、まずクリーンな HTML ページを準備し、ノードを記述します。 &l...

Apache をインストールした後、サービスを開始できません (サービスを開始するとエラー コード 1 が表示されます)

目次1. エラーメッセージ2. エラーの原因3. 解決策1. エラーメッセージ1. インストール後、...

ウェブ クラスターの Docker Stack 展開方法の手順

Docker はますます成熟し、その機能もますます強力になっています。 Docker Stack を...

Centos7.5 構成 Java 環境のインストール Tomcat の説明

Tomcat は Java 言語をベースにした Web サーバー ソフトウェアです。この記事では主に...

Vue でフルスクリーンを実装し、フルスクリーン終了を監視する

目次序文:実装手順:完全なソースコード:詳細情報:序文: vueでは、デフォルトページを実装し、di...

MySQL 5.5.27 winx64 のインストールと設定方法のグラフィックチュートリアル

1. インストールパッケージMYSQLサービスダウンロードアドレス:MySQL公式サイトからダウンロ...

Vueの自己ネストツリーコンポーネントの使い方の詳細な説明

この記事では、Vueの自己ネストツリーコンポーネントの使い方を参考までに紹介します。具体的な内容は次...

カルーセルカルーセルケースのJS実装

この記事の例では、カルーセルカルーセルを実装するためのJSの具体的なコードを参考までに共有しています...

Tomcat を使用して Centos 環境に SpringBoot WAR パッケージをデプロイする

戦争パッケージを準備する1. 既存のSpringBootプロジェクトを準備し、pomに依存関係を追加...

TypeScript におけるジェネリックケースの詳細な説明

ジェネリックの定義 // 要件 1: ジェネリックは指定されていないデータ型をサポートできるため、渡...

Dockerコンテナのログ分析

コンテナログを表示するまず、 docker run -it --rm -d -p 80:80 ngi...

JavaScript ES6 分割演算子の理解と応用

目次序文脱構築記号の役割使い方分割割り当ての適用アプリケーションの簡単な紹介JSONデータを抽出する...

Tomcat のプレースホルダーによるポート設定方法 (パラメータ指定方式)

仕事で必要になったため、インターネットで多くの情報を見つけましたが、それらはすべてコピーアンドペース...