【ちえんよみこみ】
遅延読み込み(Lazy Loading) とは?
最終更新:
💡 必要になるタイミングに合わせて読み込む
画像やコードなどを、必要になるタイミングに合わせて読み込む方法。初期表示に不要なリソースを後回しにし、最初の通信量や処理を減らす。
📌 このページのポイント
どういう仕組みなの?
たとえば画像にloading="lazy"を指定すると、ブラウザが画面からの距離などを見て取得時期を判断するよ。20枚あるページなら、遠くの画像を後回しにできる。ただし、見える瞬間まで必ず待つわけではない。表示に間に合うよう、画面へ近づいた段階で取得を始めることもあるんだ。
全部の画像にlazyを付ければいい?
ページを開いて最初に見える重要な画像は、遅延させない方がいいよ。特にLCPの対象になる大きな画像を遅らせると、表示が遅くなることがある。fetchpriority="high"も、重要な画像を優先するための指定だ。最初に見える全画像へ一律に付けるのではなく、何を優先したいかを考えよう。
画像が読み込まれた時に、文章がずれるのは防げる?
画像のwidthとheightなどを指定して、先に表示領域を確保する方法があるよ。画像が届いてから場所を広げると、下の文章が動いてしまう。遅延読み込みだけで表示の安定性まで解決するわけではないので、画像のサイズ指定も合わせて確認するんだ。
画像以外にも使うの?
iframeにもloading="lazy"を指定できるよ。また、JavaScriptを小さく分け、必要な機能を使う時にdynamic import()で取得する方法もある。Intersection Observer APIで画面との位置関係を検知して、独自の読み込み処理を動かすこともできるんだ。対象によって実装方法は違うよ。
遅延読み込みした画像も、検索に載る?
まとめ:ざっくりこれだけ覚えればOK!
「遅延読み込み」って出てきたら「必要になるまで読み込みを後回しにする技術」と思えればだいたいOK!
📖 おまけ:英語の意味
「Lazy Loading」 = 怠惰な読み込み
💬 Lazy(怠惰な)。必要になるまで「怠けて」読み込まない、というニュアンスだよ