遅延読み込みとは、ユーザーまたはブラウザが必要とするまで、Webページ上のコンテンツの描画を待機させることです。遅延読み込みは、Webページの読み込み時間の短縮に有効です。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
レイジーロード(遅延読み込み)とは、Webページの特定の部分(特に画像)を、それらが必要になるまで読み込むのを待機させる技術です。「Eager(イーガー)ロード」と呼ばれるすべてを一度に読み込む手法ではなく、ブラウザは、ユーザーがリソースが必要になるような操作を行うまで、特定のリソースを要求しません。遅延読み込みを適切に実装することで、ページの読み込み時間を短縮することができます。
このタイプの読み込みは、Webブラウザに読み込みを先延ばしさせるため、「遅延」と呼ばれます。遅延読み込みが実装されたWebページを表示すると、基本的にブラウザは、「実際に必要になるまでこれらの画像の読み込みを待機する」と言った動作をします。一方、「Eagerロード(熱心な読み込み)」のウェブページを表示した場合、ブラウザは「すぐに手配します!」と言った逆の動作をします。現実世界では先延ばしにすることはネガティブな意味を持つことがありますが、この場合の多くは効率性を高めるものです。
ブログ記事を例にとると、ページの上部に画像、下部付近に図が表示されていることがあります。ブログ記事を読んでいる人がテキストの一番下まで到達するのに数分かかる場合、ブラウザは読者がその部分までスクロールするまで図の読み込みを待機します。この方法では、ブラウザが読み込む画像は2つではなく1つになるため、ページの最初の読み込みはより高速になります。
画像の遅延読み込みのトリガーとなるのは、通常ユーザーのナビゲーションです。特に、ユーザーがページを下にスクロールした時に、そこに表示される画像を読み込むようにブラウザに指示します。
Webページが読み込まれたとき、ユーザーが目にする部分を「above the fold(アバブ・ザ・フォールド)」と呼び、ユーザーにはまだ見えない部分を「below the fold(ビロウ・ザ・フォールド)」と呼びます。*アバブ・ザ・フォールドより上にある画像はすぐに読み込む必要があり、読み込まれない場合ユーザーエクスペリエンスに影響を与えることになります。しかし、ユーザーはスクロールダウンするまで、ビロウ・ザ・フォールドの画像を見ることはありません。したがって、ビロウ・ザ・フォールドにある画像は、遅延読み込みを使用することができます。
*「fold(フォールド)」とは?「Above the fold(アバブ・ザ・フォールド)」と「below the fold(ビロウ・ザ・フォールド)」は、新聞のレイアウトに由来しています。新聞は通常、水平に二つ折りにされており、読者が最初に目にするのは前半分(Above the fold:折り目より上の部分)です。この用語をWebレイアウトに適用する場合、「fold(折り目)」は、ユーザー画面の下部を指します。
遅延読み込みを実装する方法の一つは、HTMLの属性loadingをイメージタグで使用することです。以下の例のようにloading="lazy"
を追加すると、ユーザーが画像の近くにスクロールするまで画像の読み込みを待機するようブラウザに指示します。
<img src="example.com/image" alt="example image" width="100" height="100" loading="lazy">
ウェブ開発者は、プログラミングのフレームワークを使用して、より高度な遅延読み込みを実装することもできます。Angularはこの目的のためによく使用されます。JavaScriptのライブラリであるReactも遅延読み込みをサポートしています。
Cloudflare Mirageは、遅延ロードを実装するもう一つの方法です。Mirageは、画像のサイズを自動的に変更するだけでなく、必要な画像のみを読み込むレイジーローダー(遅延読み込みのプラグイン)の役割を果たします。Cloudflare Mirageの機能は、ProおよびBusinessのセルフサービスプランのCloudflareのお客様、およびEnterpriseのお客様に提供しています。
media
プロパティを持つ独自のlinkが必要です(詳細)。loading
属性を含めることができます。ページ読み込みの高速化:他の条件が同じであれば、ファイルサイズが小さいWebページは読み込みが高速です。遅延読み込みでは、Webページは本来のサイズよりも小さいサイズで開始されるため、読み込みが速くなります。高速なウェブパフォーマンスには、より優れたSEO、より高いコンバージョン率、ユーザーエクスペリエンスの向上など、数多くの利点があります。
不要なコンテンツがないこと:ページに複数の折りたたみ式画像を読み込んだが、ユーザーが下にスクロールする前にページを閉じてしまったとします。このような場合、画像の配信に使用された帯域幅と、ブラウザが画像のリクエストと描画に費やした時間は、実質的に無駄になってしまいます。これに対し、遅延読み込みでは、これらの画像は必要なときだけ読み込まれます。これにより、時間と処理能力が節約され、使用する帯域幅が少なくなるため、Webサイトの所有者にとっては経費の節約になる場合があります。
予想以上に速くリソースが要求される可能性:例えば、ユーザーがページを素早くスクロールした場合、画像が読み込まれるまで待たされる場合があります。これは、ユーザーエクスペリエンスにマイナスの影響を与える可能性があります。
サーバーとの追加通信:ブラウザーはすべてのページコンテンツを一度にリクエストするのではなく、ユーザーがページを操作する間、ブラウザがWebサイトのサーバーにコンテンツリクエストを複数回送信する必要がある場合があります。コンテンツ配信ネットワーク(CDN)を使用することで画像はCDNによってキャッシュされ、ブラウザはオリジンサーバーにリクエストを送信して画像を取得する必要がなくなるため、この潜在的な欠点を最小限に抑えることができます。
ブラウザが処理するための追加コード:開発者がページリソースの遅延読み込み方法を指示するために複数行のJavaScriptをWebページに追加することで、ブラウザが読み込んで処理しなければならないコードの量が増加します。もし非効率的に行われた場合、このわずかな読み込みと処理の追加時間は、遅延読み込みによって節約される時間を上回る場合があります。
Eagerローディングとは、Webページのすべてのリソースを同時に、またはできるだけ早く読み込むことです。Eagerローディングを使用する一部のアプリケーションでは、「読み込み中」の画面が表示されることがあります。オンラインゲームのような複雑でコードの多いWebアプリケーションでは、Eagerローディングの使用が好まれる場合があります。
Webパフォーマンスにはさまざまな要因が影響しますが、以下の3つのステップは、Webサイトを高速化するための良い出発点となります。
Webページのパフォーマンスを向上させる方法についてはこちらをご覧ください:Webサイトの速度を向上させるためのヒント