プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Web技術
  • 【Web技術】画像の遅延読み込み(lazyload)について
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Web技術】画像の遅延読み込み(lazyload)について

09.16

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

昨今、回線の性能がよくなっているにせよ自分が今視覚で見ている部分から読み込んだ方が効率的という発想。いきなり画面に見えないフッターコンテンツから表示させても無駄。

wordPressにもそういうプラグインがあります。

仕組み

基本目に見える部分から処理される。一気にページの画像をすべて読み込むのではなく、スクロールするたびに画像が読み込まれるような挙動になります。

メリット

直帰率と離脱率が下がる。

また、技術的な視点にしてもページをスクロールしなければ無駄な通信量がかからなくなるのでメリットが大きいです。(昨今のクラウドベースの分析ツールとかは通信量が課金の基準になっているSaaSが多いですし。)

loading="lazy"

imgタグすべてに対してloading="lazy"を指定してあげれば遅延読み込みの実装が簡単にできます。ただ、古めのブラウザとかiOSとかだと対応していなかったりするのが弱点です。(Chromeでいえば、2019年の77以降、iOSなら15.4以降しか対応していません。特にiOSは古いまま使っている人もいるでしょう。)

1
<img loading="lazy" src="images/620023642.jpg" alt="" width="400" height="300" />

lazysizes.js

以下のレポジトリから入手できます。属性でdata-srcを指定するのとclassに"lazyload"と指定すれば実装可能です。ライブラリを使えば古いブラウザでも遅延読み込みに対応させることが可能です。

https://github.com/aFarkas/lazysizes

1
<img data-src="画像1.jpg" class="lazyload" >

Reactの遅延読み込み

  • ダイナミックインポート(import('モジュール名'))
  • React.lazy
  • suspense

ダイナミックインポートとは、モジュールが必要になった時点で動的に読み込むことを指します。非同期的な処理になります。通常Reactだと静的インポート(import AAA from "モジュール名")が使われることが多いのですが、ダイナミックインポートなら描画時にすべてロードしたうえで描画するということをしなくてよくなるので初期描画が早くなります。

ただ、その際に、React.lazyやsuspenseで画面上まだloading中であることを表示してあげる実装が推奨されています。

スポンサーリンク
  • 2023 09.16
  • miyabisan2
  • コメントを書く
  • Web技術
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2021 09.17

    【Web開発】「Data URL Schema」と「Blob URL Schema」の違い

  2. 2023 09.16

    【Web技術】Cache-Control調査

  3. 2018 07.15

    【PWA】特徴、構成要素、設計、実装方法

  4. 2023 09.11

    【Web技術】キャッシュ戦略

  5. 2018 05.27

    ファイルの「圧縮」と「アーカイブ」と「解凍」、gzip圧縮について

  6. 2023 09.13

    【Web技術】配信のための画像の知識

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Web技術】Cache-Control調査

【React】viteでjestを導入する方法

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー