- 締切済み
キャッシュされた画像を使わずサーバーの画像を使う方法
ホームページ上の画像を更新してもキャッシュされた画像が表示されてしまいます。 自動更新する画像ですが、最新画像が見られません。 JavaScript でこれを防止するような記述はありますか? HTML+TIME でできるようなことを聞いた事がありますが、HTML+TIMEでサーチし、書かれていたことにはキャッシュが無効になるような表現がなく、また利用方法が理解できませんでした。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- flowermaze
- ベストアンサー率56% (159/282)
画像ファイル名を変えなくても、 <img src="aaa.gif?123456789"> のように、画像ファイル名のあとにランダムな数字をつけてやれば、毎回画像を読み込むようにできますよ。 これならJavascriptでもできると思います。
- Dpop
- ベストアンサー率51% (279/544)
Web屋です。OkWebの様なサイトを設計, 開発する仕事をしています。 僕らも非常に手を焼かされる問題です。 結論から言うと、残念ながらキャッシュをコントロールする方法はありません。 meta宣言を利用する方法が紹介されているページもありますが、 ブラウザの種類やバージョンに大きく影響を受けるため、 利用者の環境次第になってしまうのです。 特に、InternetExproerのキャッシュをコントロールする事は非常に難しく、 現実的ではない。と言うのが僕らの常識です。 では、全く方法が無いのか。と言うと、そんな事はありません。 一番簡単な方法は、利用する画像ファイルのファイル名を変えてしまえば良いのです。 静的HTMLでページを組んでいるのであれば、画像の内容が変わるたびに、 画像ファイルのファイル名を変更してください。 すると、次に訪れた時には、必ずWebサーバーから画像を取りに行きます。 途中に、ファイヤーウォールがある場合には、そこから画像ファイルが取られますが、 ファイル名が変わっているので、ファイヤーウォールにある画像も最新の物である事が保障できます。 動的にHTMLを組む仕掛け(CGIやPHPなど)であれば、画像ファイル名をランダムに変更し、HTMLと画像ファイル名の辻褄を併せる工夫をすれば良いでしょう。 キャッシュを制御する。と言う発想とは全く違う発想ですが、目的の動作にはなると思います。
お礼
ありがとうございます。 > 動的にHTMLを組む仕掛け(CGIやPHPなど)であれば、画像ファイル名をランダムに変更し、HTMLと画像ファイル名... できればこの手法を使いたいと考えています。 この手法でDpopさんへ個人的にお願いして有料で作っていただくことはできますか? 1秒毎に更新される画像640x480を表示するのみです。 アップロード側PCソフトは当方で作れます。
- kililikanrai
- ベストアンサー率28% (11/38)
javascriptじゃないと駄目なのですか?最近ではセキュリティリスク回避のためにjavascriptはオフにしている人が多いと思うのでなんでもかんでもjavascriptというのはどうかと思うんですけど。 ブラウザのキャッシュを制御する http://www.bayashi.net/st/pdmemo/browsercache.html この方法ではうまくいきませんか?または都合が悪いですか?
お礼
ありがとうございます。 当方のPC環境だけですと設定では有効ですね。 しかし、不特定の方の利用を前提にしていますので、この方法は利用できないと思われます。
補足
お礼のところで誤った解釈であったことをお詫びします。 http://www.bayashi.net/st/pdmemo/browsercache.html を読み直し、HTML で記述する部分だったんですよね。 他の方の回答と合わせ変更しテストしてみます。 ありがとうございました。
お礼
ありがとうございます。 以前聞いた話しでは 123456789 にあたる部分を時間のデータで毎回変わるようにしなさいと言われたことがありましたが、PC毎で設定された時間の違いで実現できないと解釈していました。(それがHTML+TIMEと記載の根拠です) 今回のご説明でよく理解できました。 感謝します。