JavaScript

【JavaScript】loadイベントとは?ページの読み込み後に処理を実行させる

後輩ちゃん
後輩ちゃん
先輩!今日は何を教えてくれるんですか?
先輩くん
先輩くん
今日は、JavaScriptのloadイベントの使い方について教えるよ!
後輩ちゃん
後輩ちゃん
よろしくお願いします!

loadイベントとは、画像やスタイルシートなど全てのリソースの読み込みが完了したタイミングで発火するイベントです。

JavaScriptの学習におすすめ参考書
改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

参考書が苦手な人はUdemyの動画がおすすめ
ガチで学びたい人のためのWEB開発徹底実践(フロントエンド編)

動画情報
作成者CodeMafia
学習時間19.5時間
受講者数28,547人
レビュー (5,025件)
動画の詳細はこちら

loadイベントの使い方

先輩くん
先輩くん
loadイベントは、addEventListenerメソッドにloadを指定する方法とonloadプロパティを使う2種類あります!
後輩ちゃん
後輩ちゃん
使い方をそれぞれ別々に解説してるよ!

addEventListenerを使ったloadイベントの書き方

addEventListenerメソッドを使ってloadイベントを登録する時の書き方は以下の通りです。
window.addEventListener('load',function(){
  // 処理内容を記述
});

windowオブジェクトに対してaddEventListenerメソッドを使います。第一引数に「load」を指定し、第二引数に指定した関数内にページの読み込みが完了された時に実行したい処理を記述します。

先輩くん
先輩くん
loadを使ったサンプルコードは以下の通りです。


上記サンプルでは、画像の読み込みが完了後に画像の横幅の値を取得し表示させています。

onloadプロパティの書き方

onloadプロパティを使ってloadイベントを登録する時の書き方は以下の通りです。
window.onload = function(){
  // 処理内容を記述
};

addEventListenerメソッドと同様にwindowオブジェクトに対して、onloadプロパティを使い関数を代入します。代入した関数に全てのリソースが読み込まれたタイミングで実行したい処理を記述します。

先輩くん
先輩くん
onloadプロパティを使ったサンプルコードは以下の通りです。


上記サンプルの処理は、addEventListenerメソッドを使ったものと同様で画像の読み込みが完了後に画像の横幅の値を取得し表示させています。

addEventListenerメソッドのloadイベントとonloadプロパティの違い

後輩ちゃん
後輩ちゃん
loadイベントの2種類の書き方について理解できたのですが、2つの違いはあるんですか?
先輩くん
先輩くん
大きな違いとしてイベントを複数登録できるか、できないかの違いがあるよ!
これについては別記事で詳しく解説しているから興味のある方は下記のURLを参考にしてね!

loadイベントが必要になる場面

loadイベントは、初心者向けの参考書などでおまじないとして書いておくとチラホラ見受けますが、全ての読み込みが完了してから処理を実行するためボリュームのあるページなどでは読み込に時間がかかります。

画像のサイズを取得したいなどの処理では、loadイベントを使う必要がありますがDOMのツリー構築が完了した時点で実行できる処理の場合は「DOMContentLoaded」を使う方がloadイベントよりも早く動作することができます。

まとめ

今回はJavaScriptのloadイベントの使い方について解説しました。
最後にポイントを軽くおさらいしましょう。

ポイント

  • loadイベントとは、画像やスタイルシートなど全てのリソースの読み込みが完了したタイミングで発火するイベント
  • DOMのツリー構築が完了したタイミングで実行できる処理は、loadイベントではなく「DOMContentLoaded」を使う方が処理が早い
  • addEventListenerメソッドで登録するloadイベントとonloadプロパティを使ったイベント登録の違いは複数のイベントを登録できるか、できないか

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村