履歴を削除してもらったり、Ctrl+F5だったり、先方がパソコンが苦手だった場合はなかなか協力してもらうのが難しかったりします。
もちろんエンドユーザーがパソコン苦手な人だったら過去の情報をみてしまっていたりと、トラブルのもとになってしまう可能性もあります。
キャッシュは閲覧している環境にデータが残ってしまっているから過去のものが表示されてしまいますが、今回は相手にどうにかしてもらうのではなく、自分自身で出来る対策などを紹介します。
目次
なんで過去のデータがみえてしまうのか
キャッシュとは同じページを見た際に、読み込みを早くするために、パソコン上にデータを保存しておく仕組みです。
親切な機能のおかげで逆に更新しても反映されないという事がある感じです。
ファイルを調節してキャッシュを避ける
基本的にテキストファイルよりも、容量が重たい画像ファイルなどが保存されてしまうケースが多いですので、画像ファイルに関連する対策になります。
画像やPDF関係はファイル名を変えてアップロードをする
imgタグのリンクの紐づけなどがめんどくさいですが、ファイル名を変更すれば即座に反映されます。
スライダーなどのjQueryを入れている部分で使用している画像などは履歴などを消しても更新されない事も多々あります。
どうしても反映されない時などはこの方法といった最終手段にしておく感じでいいかもしれません。
※ファイル名が違うと、過去になかったファイルといった認識になるので、即座に最新のものが表示されます。
重たい画像はアップする前に必ず圧縮する
重たいファイルほど次回の読み込みを早くするために保存されてしまう事が多いです。
画像が荒れない程度に圧縮したり必要最低限のサイズに調節しましょう。
※一回アップしてしまうとすぐにキャッシュとして残ってしまう可能性がありますので、必ずアップ前に圧縮することをお勧めします。
※圧縮方法は過去にも紹介していますが、Tiny pingというサイトが簡単でおすすめです。
htaccessでキャッシュしないように設定する
<Files ~ "\.(html|php|jpg|jpeg|gif|png|css|js|pdf)$">
Header add Pragma "no-cache"
Header set Cache-Control no-cache
</Files>
私はしっかりとは効果を感じた事がありませんが、htaccessでもキャッシュの制御をすることができます。
これを使うようになってから過去のデータが表示されちゃうなどの連絡はすごく減ったので、 実際には凄いはたいてくれているのかもしれません。
ファイルの指定
<Files ~ "\.(html|php|jpg|jpeg|gif|png|css|js|pdf)$">
拡張子を記入してキャッシュさせないファイルを指定します。基本的に画像などのみでも問題ないと思います。
キャッシュさせない
Header add Pragma "no-cache"
Header set Cache-Control no-cache
過去教えてもらったのをずっと使用しているので細かくはわからないですが、キャッシュをさせないための記述です。
この記述をしていたとしても、全ての防げるというわけではなく、過去のデータが残ってしまう事がありますので、あくまで予防といった形になると思います。
まとめ
キャッシュをされない方が確認がスムーズに行きますが、ページを表示するスピードなどは毎回すべての画像を読み込みなおすなど時間がかかってしまいます。
WebPやAMPなど、まだ世の中に浸透しきっていないページを早く表示できるような仕組みなどもありますので、常に制御をしておくといった時代が来るのかもしれませんが、
現在では、その時その時に合った対応をとるのが無難かもしれません。