JavaScript DOMContentLoaded イベントのケーススタディ

JavaScript DOMContentLoaded イベントのケーススタディ

DOMContentLoaded イベント

文字通り、DOM がロードされた後に実行されます。

window.onload イベントと非常に似ていますが、いくつか違いがあります。

  1. ドキュメントが完全に読み込まれ解析された後に、DOMContentLoaded イベントがトリガーされます。
  2. window.onload イベントは、ドキュメントの読み込みと解析を完了するだけでなく、画像や CSS ファイルなどの関連リソースの読み込みも完了します。

次の疑問は、DOM がいつロードされるかということです。これはブラウザのレンダリングから始まります。ブラウザが Web ページを表示するプロセスは、次のように説明できます。

1. HTML ドキュメントを要求し、次にそのドキュメントに基づいてさらに img、css、およびその他のリソース ファイルを要求します。

2. ドキュメントを解析して、DOM ツリーと CSS ツリーの 2 つを取得します。

3. 上記の 2 つのツリーに基づいてレンダリング ツリーを生成します。

4. レンダリング ツリーに従ってレイアウトを実行し、関連する要素を描画します。

Webkit を例にとると、レンダリング プロセスは次のようになります。

DOMContentLoaded イベントは次の場合にトリガーされます:

DOM の後、RENDERtree の前。

JavaScript の読み込みと実行により、DOMContentLoaded イベントのトリガーが遅延されます。

ブラウザは JavaScript に DOM 要素情報が必要かどうかを判断できないため、JavaScript は CSS レンダリングが完了するまで待ってから読み込んで実行する必要があります。

JavaScript に最新の情報が確実に含まれるように、最初に CSS が読み込まれてレンダリングされます。

参考資料:

http://www.softwhy.com/article-9783-1.html

https://www.cnblogs.com/CandyManPing/p/6635008.html

https://www.cnblogs.com/caizhenbo/p/6679478.html

JavaScript DOMContentLoaded イベントの詳細なケースに関するこの記事はこれで終わりです。JavaScript DOMContentLoaded イベントの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScript 学習概要 (I) ECMAScript、BOM、DOM (コア、ブラウザ オブジェクト モデル、ドキュメント オブジェクト モデル)
  • JavaScript における BOM と DOM の詳細な説明
  • Java による XML ファイルの解析と JSON の変換方法 (DOM4j 解析)
  • JavaScriptがDOMツリーの構築にどのように影響するかについて詳しく説明します。
  • JavaScript の contains には関数実装コード (拡張文字、配列、DOM) が含まれていますか?
  • JavaScript のドキュメント オブジェクト モデル (DOM)

<<:  Nginx/Httpd ロードバランシング Tomcat 設定チュートリアル

>>:  Linux スワップメモリ​​を拡張する方法

推薦する

Vueは指定された日付間のカウントダウンを実装します

この記事では、指定された日付間のカウントダウンを実装するためのVueの具体的なコードを例として紹介し...

Dockerを使用してAngularプロジェクトをデプロイする方法

Docker を使用して Angular プロジェクトをデプロイする方法は 2 つあります。1 つは...

MySQL シリーズ II マルチインスタンス構成

チュートリアルシリーズMySQL シリーズ: MySQL リレーショナル データベースの基本概念My...

Vue.js ソースコード解析のカスタム手順の詳細な説明

序文コア機能のデフォルトの組み込みディレクティブ (v-model および v-show) に加えて...

Linux システムを起動時に自動的にスクリプトを実行するように設定する方法の例

序文みなさんこんにちは。私は梁旭です。職場では、システムの起動後にスクリプトやサービスを自動的に開始...

Ubuntu に MySQL 5.7 をインストールし、データ ストレージ パスを構成する方法

1. MySQLをインストールするこの記事はAPT経由でインストールされており、インストールされてい...

ウェブページでグレーまたはブラックモードを実現するための CSS3 フィルターコード

フロントエンドcss3 フィルターは、Web ページのグレー効果を実現できるだけでなく、ナイト モー...

シンプルなショッピングカート機能を実現するjs

この記事の例では、簡単なショッピングカート機能を実現するためのjsの具体的なコードを参考までに共有し...

HTML ページをズームアウトした後にスクロール バーを表示するためのサンプル コード

ここでは、HTML ページのサイズを縮小した後に下部にスクロール バーを表示し、スクロール バーをス...

WeChatアプレットでQRコードを識別するために長押しする実装プロセス

序文公式アカウントのQRコードは長押しで認識できることは皆さんご存じですが、ミニプログラムに対する制...

Mysql一時テーブルの原理と作成方法の分析

この記事は主にMysql一時テーブルの原理と作成方法を紹介します。この記事のサンプルコードは非常に詳...

Layuiテーブル行のデータを動的に編集する

目次序文スタイル機能説明初期化コードイベントリスナーの追加リスナーツールバーモニターテーブル行ツール...

MySQL sql_mode の使用に関する詳細な説明

目次序文sql_mode の説明最も重要なオプションすべてのオプション要約する序文前回の記事「MyS...

IE8互換表示(IE7モード)とスタンドアロンIE7の違いの詳細な説明

1つ。 IE8 互換表示の概要<br />新しいバージョンのブラウザが古い Web サイ...

Ubuntu の Python で C/C++ メソッドを呼び出すダイナミック リンク ライブラリの詳細な説明

ブーストをインストールPython から C/C++ を呼び出す方法はたくさんあります。この記事では...