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 スワップメモリ​​を拡張する方法

推薦する

MySQL インストール図の概要

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

CSS グリッドレイアウトの完全ガイド

Grid は 2 次元のグリッド レイアウト システムです。これを使用すると、本質的にはハック メソ...

CSS3 で Taobao に空白スペースを実装する方法

Taobao用の空白スペースを作成します。 ブラウザページを縮小すると、コンテンツ領域は縮小されませ...

CSS3は小さな矢印のさまざまなグラフィック効果を実現します

CSS を使ってさまざまなグラフィックを実現できるのは素晴らしいことです。画像を切り取る必要はなく、...

jQueryのチェーンプログラミングスタイルの詳細な例

チェーンプログラミングの実装原理jQuery を使用すると、開発者は常にドット構文を使用して独自のメ...

Dockerはコード検出プラットフォームSonarQubeを構築し、Mavenプロジェクトのプロセスを検出します

1 はじめに優れたコーディング習慣は優れたプログラマーが備えるべき資質ですが、コードの品質を保証する...

Centos 7.4 サーバーの時刻同期設定方法 [NTP サービスに基づく]

この記事では、CentOS 7.4 サーバーで時刻同期を構成する方法について説明します。ご参考までに...

mysql5.7.17 zip の解凍とインストールの詳細な手順

1. ダウンロードアドレスhttps://dev.mysql.com/downloads/mysql...

win10でのmysql5.7.21解凍バージョンのインストールチュートリアル

次のように、Win10でMysqlの解凍バージョンをインストールします。環境: win10 64ビッ...

Keras を使って SQL インジェクション攻撃を判断する (例の説明)

この記事では、ディープラーニングフレームワーク keras を使用して、SQL インジェクションの特...

Vue プロジェクト コード分割ソリューション

目次背景目的分割前プロセス設計ディレクトリ構造の設計問題分割後プロセス設計ディレクトリ構造の設計問題...

HTMLとXHTML、HTML4とHTML5のタグの違いについて簡単に紹介します。

HTML と XHTML の違い1. XHTML要素は正しくネストされている必要がある2. XHT...

Mysqlはマスタースレーブ構成とマルチマスターマルチスレーブ構成を実装します

現在シミュレーションしているのは、マスター スレーブ システム (ホスト 1 台とスレーブ 1 台)...

Win10 システムに MySQL8.0.13 をインストールする際の問題と解決策

オペレーティングシステム: Windows10 MySQL バージョン: 8.0.13-winx64...

vue ルーティング ビュー router-view のネストされたジャンプの実装

目次1. app.vueページを修正する2. ログインページを作成する (/views/login/...