画像を擬似的にキャッシュさせない方法
- 2007年03月07日
- category:PHP
- Comment(0)
- Trackback(0)
画像がキャッシュされてどういうときに困るかというと、Web上でフォームを用いて画像をアップする際などに、アップされる画像の名前が同じだとブラウザのキャッシュが表示されて、新しい画像を読みにいかないのです。いちいちリロードしないと画像が切り替わらないので困ったことになります。
対処方としては画像の名前をアップするたびに画像の名前を変えればいいんですが、状況によってはそれが結構面倒な場合があります。そこでお手軽に対処できる方法が、画像の名前の後にユニークなクエリ情報(urlの?以降の情報)を付け加えることです。phpなどで現在の時間をつけてやるのがシンプルでいいと思います。
<img src="/sample.jpg?<?php echo time(); ?>” alt=”サンプル”>
出力:
<img src=”/sample.jpg?1173278322” alt=”サンプル”>
この方法で擬似的にキャッシュされないように見せることができます。ブラウザがキャッシュしているかどうかは画像のURLで判断しているらしいのですが、クエリ情報もこの判断材料に含まれるので、画像の名前が同じでもクエリ情報が違っていれば画像を読みにいってくれるわけです。
キャッシュしなくても問題ないものならいいのですが、画像のサイズが大きい場合などキャッシュした方が良い場合もありますので使いすぎには注意が必要です。
関連書籍
- Prev Entry
- IEでページが真っ白になる謎現象
- Next Entry
- ブロガー向けプロフィールページ作成サービス「iddy」でプロフィールを作成してみた
トラックバックURL
http://webtech-walker.com/archive/2007/03/07112848.html/trackback
※トラックバックを受け付けてから表示するまでにしばらく時間がかかる場合があります。

PHPによるWebアプリケーションスーパーサンプル 活用編