30代専業主婦の独学エンジニア挑戦ブログ

実務未経験の30歳の専業主婦が独学でエンジニアを目指すブログです

「キャッシュ」とは?

勉強記録

今週から写真共有アプリの復習に入っています。
復習のスケジュールとして、[午前中は自分で復習、午後は復習した箇所をSEである夫に解説する] という流れです!

夫からは容赦なく質問が・・・(笑)自分の知識が曖昧だった点がいくつかあったので、質問されてうまく答えれなかった内容をまとめます。

キャッシュとは何か

LaravelではJavaScriptやVueコンポーネントなどをコンパイルする仕組みが最初から備わっており、その設定を容易にするためにLaravel Mixというライブラリを使います。

ビルドの際に参照されるwebpack.mix.jsというファイルを編集したときに、「バージョニングの有効」を行いました。
コンパイルしたファイルのバージョニングを有効にするのは、キャッシュを読まないようにするためとのこと・・・

そこで夫から「キャッシュってなに?」との質問がありました。

キャッシュとは

キャッシュとはWebブラウザがページの表示を速くするために、JavaScriptCSS、画像ファイルなどをローカルのPC内に勝手に保存する機能のこと。
(ブラウザだけでなくサーバーサイドのキャッシュもあるけど、今回はブラウザのキャッシュについて)

キャッシュがないと、ページを表示するたびに全てダウンロードしてくるので、動作が遅いしサーバーにも負担がかかる。
ブラウザごとにキャッシュがあるので、ChromeSafariFireFoxなどブラウザごとにキャッシュを消すことができる。

キャッシュのデメリット

ページの情報を修正したり画像を変更した場合、以前にページを表示したときのキャッシュが効いていて、更新したコンテンツが反映されないというデメリットがある。

クライアント側でキャッシュを削除すれば解決するが、提供側が必要に応じてキャッシュが効かないように考慮してサービスを提供すべきである。

キャッシュが効かないようにしたい場合には・・・

クエリパラメーター(URLの?から始まる部分)を書き換えることで、ブラウザは変更前とは違うURLだと認識して、キャッシュを読まずに新しく更新されたファイルを読みに行く。

クエリパラメーターの書き方にはとくに決まりがないが、リリース日、バージョン、ランダムな数値などをつける場合が多い。

今回バージョニングを有効にしたワケ

バージョニングを有効にすると、ビルドするたびにコンパイルしたファイルのURLにランダムな文字列をつける。
つまりブラウザ側は新しいファイルだと認識して、キャッシュを読まなくなり、変更や更新した内容がページに反映されるようになる。