0
0

ポイント

  • リソースヒントを試す
  • 画像 の ダウンロード時間は誤差が大きい
  • 誤差以上の効果を得るのは難しい

目的:ページの表示を高速化する

前回まで、画像サーバーを変更して画像の表示を高速化した。

さらにできることがないかを検討し、リソースヒント を試してみた。

リソースヒント とは?

リソースヒントとは、重要なファイルの参照を予めブラウザに知らせて、取得を促す指示になる。

代表的なものに preload、preconnect、dns-prefetch がある。

Web にあまり詳しくない書き手は、次のように理解した。

  • preload:これ取り寄せといて!
  • preconnect:電話つないどいて!
  • dns-prefetch:電話番号調べといて!

詳細は、こちらを参考にした。

preload

preload はブラウザに対して、リソースを事前にダウンロードするように指示する。どのように動くのか、実際に確認してみた。

preload は <head> 内の早い場所に、以下の記述をする。

<link rel="preload" href="画像のURL" as="image" />

旧画像サーバー preloadなし コメント入り.png (1296×253)旧画像サーバー preloadあり コメント入り.png (1300×252)

上が通常の読み込み、下が preload を使用した場合になる。

まず preload が無い場合、通常通りページの読み込みを行い、終了近くで画像のリンクを見つけて画像の取得を開始する。

次に preload がある場合、ページの読み込み初期に <head> 内の 早い段階でリンクを見つけて、即ダウンロードを開始 している。

画像のダウンロードは、ページのダウンロードより早く終了している。

どれぐらいの効果があるのか、11回測定して中央値を求めてみた。

ケース1:速いサーバーの場合


Blogger の旧画像サーバー

リソースヒントの測定、旧画像サーバー preload なし.png (800×1120)リソースヒントの測定、旧画像サーバー preload あり.png (800×1120)

preload があると、確かに ページのダウンロード開始直後に、画像のダウンロードも開始 している。

しかし、2つのグラフを比較すると、画像の取得は確かに早くなっているが LCP は変わっていない。

速いサーバーでは、LCP は画像のダウンロード以外の所が ボトルネック になるようである。

ケース2:遅いサーバーの場合


Blogger の新画像サーバー

リソースヒントの測定、新画像サーバー preload なし.png (800×1120)リソースヒントの測定、新画像サーバー preload あり.png (800×1120)

遅いサーバーでも、先ほどと同じように、preload があるとページのダウンロード開始の直後に画像のダウンロードが始まっている。

しかし、その後のダウンロード時間の誤差が大きくて、LCP は改善していない

11回 の測定の結果がこの値なので、実際のダウンロード時間はかなり誤差に影響されることがわかる。

preconnect、dns-prefetch

preconnect と dns-prefetch は、ブラウザに接続の準備をすることを指示する。

preconnect は実際の接続まで行い、dns-prefetch は接続の初期段階のみ実行する。

理論上は先ほどの preload より効果は小さく、また実際の接続にかかる時間も 0.1 秒 程度なので、そこまで大きな効果は期待できない。

また、あくまでブラウザにヒントを与えるだけなので、書き手の環境では 実際には実行されないことが多かった

結論:誤差以上の効果を得るのは難しい

今回の測定では、リソースヒントで明らかな効果は得られなかった。

リソースヒントは、機能を多く追加してパフォーマンスの悪化した場合に効果を発揮するもので、もともと動作が軽い場合にはあまり効果が無いのかもしれない。

最近のブラウザはタスクを最適化しているので、人が指示するよりそのまま任せたほうが良い可能性もある。



次の記事

前の記事


オリジナルのブログ記事

0
0
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
0
0