たった2ステップで「Lazysizes」を使用し画像の遅延読み込みを行う手順!!



通常Webページは最初のアクセス時にページ内の全ての画像をダウンロードします。スクロールしなければ表示されない画像までもが、最初のアクセス時にダウンロードしているため、効率が悪く、ファーストビューの表示スピードも低下します。

そこで、ページをスクロールしたタイミングで必要な画像をダウンロードすることで、ページの表示スピードを上げるテクニック『遅延読み込み』の登場です。

代表的なスクリプトとしてLazyloadがありますが、私は「Lazysizes」をお勧めします。LazysizeはGoogleのボットが巡回して来た時に、遅延読み込みを行わないため、正しい情報がGoogleにINDEXされるようです。また、今回ご紹介するように、たった2ステップで実装できるので、初心者にも簡単です。

Lazysizeでは(Lazyloadでもできるかもしれませんが)、画像の遅延読み込みだけでなく、背景画像を含めてdivタグまるごと遅延読み込みさせることができるので、記事単位で表示が必要になったタイミングで読み込むことができ、より高速化が期待できます。


Step 1

まず、LazysizeをHTMLページ内に読み込みます。</BODY>タグの直前に下記のスクリプトをコピペします。

<script src="https://cdnjs.cloudflare.com/ajax/libs/lazysizes/4.0.1/lazysizes-umd.min.js"></script>



Step 2

次にimgタグにlazyloadクラスを指定します。

<img class="lazyload" src="画像ファイルまでのパス">




設定はこれだけです。

以下検証手順です。


検証手順

当ページ自体もlazysizeを利用して遅延読み込みを行っているので、当ページを利用して検証手順をご確認いただけます。ただし、ライブドアブログを利用しているため、下記の通りとても深い階層にlazysizeを指定した画像が格納されています。

<body class="default_2012 page-article~

<div id="wrapper">

<div id="content">

<div id="main">

<div id="main-inner">

<article class="article first-article" ~

<div class="article-body" itemprop="articleBody">

<div class="article-body-inner">

<div class="sample">



検証 Step1

Google Chromeで行います。対象のWEBページを開き、右クリック→検証を選択します。

verification


検証 Step2

lazyloadクラスを指定した画像のソース部分を確認します。すでに画像が読み込まれた画像のクラス名は『lazyloaded』。まだ画像が読み込まれていない画像はクラス名は『lazyload』となっています。

verification2


検証 Step3

ゆっくりWEBサイトを下にスクロールします。『lazyload』クラスのままだった画像の付近までスクロールすると、クラス名がオレンジ色になり・・・ verification3

クラス名が『lazyloaded』に変化し、このタイミングで読み込みが実行されたことが分かります。

verification4



以上で無事lazysizeを利用して画像の遅延読み込みが行えるようになりました。




以下、検証用の画像です。

mountain



moon



flower



butterfly


jQuery最高の教科書
株式会社シフトブレイン
SBクリエイティブ
2013-11-26