読み込み処理についてAIに聞いてみる

Javascriptの「リソースや情報の読み込みが完了してから処理を実行する機能」は、 onload()のほかにどんな種類のものがあるかAIに聞いてみました。

window.onload

ページのすべてのリソース(画像・CSS・iframeなど)が読み込まれた後に実行される。

window.onload = function() {
  console.log("ページの全リソースが読み込まれました");
};

DOMContentLoaded

HTMLのDOM構造だけが読み込まれたタイミング(画像などの読み込みは待たない)で実行。画像やCSSを待たずにスクリプトを実行したい場合に適しています。

document.addEventListener("DOMContentLoaded", function() {
  console.log("DOMの読み込み完了");
});

img.onload

特定のリソース(画像など)の読み込み完了を待って処理をする。

const img = new Image();
img.onload = function() {
  console.log("画像が読み込まれました");
};
img.src = "example.jpg";

fetch().then()/async()/await()

ネットワークリクエストやファイル読み込みなど、非同期処理の完了を待ってから次の処理を行う方法。

fetch("data.json")
  .then(response => response.json())
  .then(data => {
    console.log("データが読み込まれました:", data);
  });
async function loadData() {
  const response = await fetch("data.json");
  const data = await response.json();
  console.log("データが読み込まれました:", data);
}
loadData();

script.onload

外部スクリプト読み込み後の処理を指定。

const script = document.createElement("script");
script.src = "some-library.js";
script.onload = function() {
  console.log("外部スクリプトが読み込まれました");
};
document.head.appendChild(script);

promise

非同期処理全般を制御する仕組み。処理が成功(resolve)または失敗(reject)したときに次のアクションを指定。

new Promise((resolve, reject) => {
  // 非同期処理
  setTimeout(() => {
    resolve("完了!");
  }, 1000);
}).then(result => {
  console.log(result);
});

まとめ

何に対して「読み込み完了を待つ」のかによって使う方法が変わるので、目的に応じて使い分けるのがポイント

目的方法
ページのすべての読み込み完了window.onload
HTML構造だけ読めればOKDOMContentLoaded
画像や外部ファイル単独の読み込み待ちimg.onload など
非同期APIやファイル読み込みfetch().then()async/await
動的スクリプト読み込みscript.onload

作れるものが大きくなったら、きちんとデザインされたローディング画面(とローディング処理)をつくるのがかっこいいんだろうなと思いました。

By

Posted in

Reply

メールアドレスが公開されることはありません。 が付いている欄は必須項目です