LoginSignup
1
2

More than 3 years have passed since last update.

3つのstepでサイト表示速度をアップした話

Last updated at Posted at 2021-02-19

3つのステップとは

サイトのコーディングがほぼ完了した際に、パフォーマンスが低すぎるとびっくりして、
なにが方法がないのか、色々調べて、検証してみた結果をまとめた記事です。
早速ですが、3つのステップはこちらです。

  • CSSファイル、JSファイルを圧縮・軽量化(Minify)する
  • img要素を「loading=“lazy”」を付与する
  • content-visibility: auto;でコンテンツの遅延読み込み

IEと戦う戦士なら諦めましょう。

1. CSSファイル、JSファイルを圧縮・軽量化(Minify)する

2021年のサイト制作現場で、ファイルを圧縮しない選択肢はないでしょう。
Webpackで開発する際に、ミニファイは当たり前ですが、
Webpackを使う以外の場合でも、ファイルを簡単にミニファイする方法がございます。

スクリーンショット 2021-02-19 22.35.13.png

こちら、VScodeの「JS & CSS Minifer」という拡張機能です。
使い方について、Google先生に聞けば、丁寧に教えるから、ここで省略します。
一度圧縮されたファイルを元に戻る便利な拡張機能もあります。
「Prettier – Code formatter」

ただし、圧縮されたファイルを「Prettier – Code formatter」で戻ったあと、最後のセミコロンが省略されてしまう場合があります。

 p {
    color: #000;
    font-size: 16px;
    margin: 15px auto /* ここのセミコロンがなくなっちゃう!!! */
  }

何も仕掛けていないときのサイトは36点! ひどすぎる!!
スクリーンショット 2021-02-19 23.16.33.png

ミニファイ後
スクリーンショット 2021-02-19 23.34.17.png
スクリーンショット 2021-02-19 23.23.34.png

がっかり!ほとんど変わっていないじゃん。

でも、大丈夫!次の策があります。

2. img要素をloading=“lazy”を付与する

使い方はとっても簡単、img属性にloading=“lazy”を追加するだけです。

<img src="pic.png" alt="画像の詳細" loading="lazy">

loading=“lazy”の効果はどうだい?
スクリーンショット 2021-02-19 23.39.11.png

ちょっと微妙ですね!

最後、最新のやり方を導入してみたいと思います。

3. content-visibility: auto;でコンテンツの遅延読み込み

使い方も簡単。セクションごとに指定するだけです。

section {
  content-visibility: auto;
  contain-intrinsic-size: 500px; 
}

MDNの解説はこちらです。
https://developer.mozilla.org/ja/docs/Web/CSS/content-visibility

参考記事はGoogleのブログです。
https://web.dev/content-visibility/

ちなみに、後こちらの日本語記事もみつけました。
- 表示速度を飛躍的に向上させるHTML/CSS最新仕様「content-visibility」「Lazy loading」「contain」をコード付き簡単解説

すぐ検証してみました。
スクリーンショット 2021-02-20 0.00.06.png

スクリーンショット 2021-02-19 23.51.52.png

さすが最新技術! 早くなりました!

今度、もっと掘り下げてみたいと思います。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2