カテゴリ: JavaScript 更新日: 2026/02/10

JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう

JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう
JavaScriptのDOMContentLoadedとloadイベントの違いを理解しよう

先生と生徒の会話形式で理解しよう

生徒

「Webページが完全に読み込まれたタイミングで処理をしたい場合、どのイベントを使えばいいですか?」

先生

「JavaScriptには主にDOMContentLoadedloadの2つのイベントがあります。それぞれ動作のタイミングが違うので使い分けが重要です。」

生徒

「違いって具体的には何ですか?」

先生

「簡単に言うと、DOMContentLoadedはHTMLの読み込みが終わったタイミング、loadは画像やスタイルシートなども含めたすべての読み込みが終わったタイミングで発火します。」

1. DOMContentLoadedイベントとは?

1. DOMContentLoadedイベントとは?
1. DOMContentLoadedイベントとは?

DOMContentLoadedは、HTML文書の解析が完了してDOMツリーが構築されたときに発火します。外部リソースの読み込みを待たずに実行できるので、スクリプトの初期化処理によく使われます。


document.addEventListener("DOMContentLoaded", () => {
  console.log("DOMの読み込みが完了しました。");
  const button = document.getElementById("myButton");
  button.addEventListener("click", () => {
    alert("ボタンがクリックされました!");
  });
});

このように、DOMが使える状態になったらすぐにスクリプトを実行できるので、ユーザーの操作に素早く対応できます。

2. loadイベントとは?

2. loadイベントとは?
2. loadイベントとは?

loadイベントは、ページ内のすべてのリソース、例えば画像、スタイルシート、iframeなどが完全に読み込まれたあとに発火します。ページ全体の読み込み完了を確認したい場合に使います。


window.addEventListener("load", () => {
  console.log("ページ全体の読み込みが完了しました。");
  const images = document.querySelectorAll("img");
  console.log("画像の数:", images.length);
});

画像が多いページではloadイベントの発火が遅れることがあります。ユーザーにすぐインタラクションを提供したい場合はDOMContentLoadedを使う方が適しています。

3. DOMContentLoadedとloadの使い分け

3. DOMContentLoadedとloadの使い分け
3. DOMContentLoadedとloadの使い分け

簡単に使い分けをまとめると次の通りです。

  • ページのHTML構造だけを操作したいとき → DOMContentLoaded
  • 画像や外部リソースの読み込み完了を待ってから処理したいとき → load

例えば、ページの初期化処理やボタンのクリックイベントの設定はDOMContentLoadedで十分です。一方で、ページ内のすべての画像を確認してレイアウトを調整したい場合はloadを使うと安全です。

4. 注意点とおすすめの書き方

4. 注意点とおすすめの書き方
4. 注意点とおすすめの書き方

非同期的にHTMLや画像が読み込まれる現代のWebでは、イベントのタイミングを正しく理解することが重要です。以下の点に注意しましょう。

  • JavaScriptをheadに書く場合はDOMContentLoadedでDOMを操作する。
  • 外部画像や大きなメディアファイルの読み込みに依存する処理はloadを使う。
  • 両方のイベントを混同すると、処理が早すぎたり遅すぎたりするのでタイミングを意識する。

正しいイベントを選ぶことで、ユーザーに快適な操作体験を提供できます。

カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptでオブジェクト指向のカプセル化を学ぶ!初心者でもわかるクラスとプロパティの保護方法
New2
TypeScript
TypeScriptのEnum(列挙型)の使い方を解説!初心者でもわかる定数のグループ化
New3
TypeScript
TypeScriptとは?JavaScriptとの違いと導入メリットを徹底解説
New4
TypeScript
TypeScriptでExpressを初期化する方法!初心者向けバックエンド開発環境構築の完全ガイド
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
JavaScript
JavaScriptの現在日時を取得する方法を完全ガイド!初心者でもわかるDate.now()とnew Date()
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.4
Java&Spring記事人気No4
TypeScript
TypeScriptで使える基本の型一覧(string, number, booleanなど)
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptでクエリパラメータを取得する方法を完全解説 URLSearchParamsの使い方を初心者向けに丁寧に説明
No.6
Java&Spring記事人気No6
TypeScript
TypeScriptで最初に覚えたい基本構文まとめ
No.7
Java&Spring記事人気No7
TypeScript
TypeScript学習におすすめの無料教材・リファレンスサイト【初心者向け】
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptとEmotion/styled-componentsの型付けパターン徹底解説!React開発の基本