【りそーすひんと】

リソースヒント(preload/prefetch) とは?

最終更新:
💡 今使う?あとで使う?つながる準備?を伝える

ブラウザに、必要なファイルの取得や接続の準備を前もって知らせる仕組み。preload・prefetch・preconnectは用途が異なり、効果は対象や環境によって変わる。

📌 このページのポイント
先に準備するものは、何?preload今のページのファイルを取得prefetch後で使うかもファイルを取得preconnect取得先との接続を準備取得の準備と、実行・適用は別必要な対象を選び、効果を測ろう
用途を選んでブラウザに準備を知らせます。実行・再利用や改善の度合いは、設定と環境によって変わります。
ひよこ ひよこ
preloadとprefetchは、どう違うの?
ペンギン先生 ペンギン先生
preloadは今のページで必要なファイルを、ブラウザが通常見つけるより早く取得できるよう知らせるもの。prefetchは後で使いそうなファイルを先に取得するものだよ。preloadが常に最高優先度になるわけではなく、prefetchも環境やブラウザの対応によって実行や再利用のされ方が違うんだ。
ひよこ ひよこ
フォントのpreloadは、どう書くの?
ペンギン先生 ペンギン先生
たとえばhead内に<link rel="preload" href="/font.woff2" as="font" type="font/woff2" crossorigin>と書くよ。asはファイルの用途を示す。フォントは同じサイトから取る場合でも、通常のフォント取得と条件を合わせるためcrossoriginが必要なんだ。実際にフォントを使うCSSの指定も別に用意しよう。
ひよこ ひよこ
preloadすれば、スクリプトも動くの?
ペンギン先生 ペンギン先生
取得を準備することと、実行することは別だよ。スクリプトを使うscript要素や、CSSを適用するstylesheetの指定は別に必要になる。URL、as、CORSなどの条件が実際の取得と合わないと、二重に取得する原因にもなるよ。
ひよこ ひよこ
preconnectは、ファイルを読むの?
ペンギン先生 ペンギン先生
ファイル自体ではなく、取得先のoriginへの接続を準備するよ。たとえば外部CDNへつなぐ前のDNS解決やTCP・TLSなどの処理だね。ブラウザが一部だけ準備したり省いたりする場合もあり、すぐ使う取得先に絞ることが大切だよ。
ひよこ ひよこ
たくさん指定した方が速そう!
ペンギン先生 ペンギン先生
不要な先読みは帯域や接続の資源を使い、必要な読み込みと競合することがあるよ。今の表示に重要なファイル、次に使う見込み、取得先を分けて選ぼう。キャッシュの規則も再利用に影響するので、開発者ツールなどで取得の順序や重複、表示時間を実測して判断するといいよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「リソースヒント」って出てきたら「ブラウザに、ファイルや接続の準備を先にお願いする仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Resource Hints」 = リソースのヒント(手がかり)
💬 ブラウザに「このリソースが必要だよ」とHint(ヒント)を与える仕組みだよ

参考資料

← 用語集にもどる