以前、「ブラウザのキャッシュを操る~」で書いた、ブラウザのキャッシュのお話の続きとでもいいましょうか。今回は特にIEのブラウザキャッシュに対する対策のメモです。ブラウザに画像をキャッシュされて困っている人のために。
「登録情報を入力(画像参照もあり)」→「確認画面」→「戻るで入力し直し」→「再度確認画面」…、と画面遷移するようなwebフォームを作る場合、IEではブラウザのキャッシュが邪魔をして、参照し直したはずなのに、「再度確認画面」で修正前の画像が表示されてしまいます。(画像ファイル名が固定の場合)
これはまたブラウザのキャッシュのいたずらね、と、まず、「ブラウザのキャッシュを操る~」でも書いたMETAタグを書いてみました。
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="Expires" content="0">
しかし、IEでは、上記でもしっかりキャッシュされてしまっているようでした…。
さらに、php側でも冒頭に以下のようなキャッシュを無効にするヘッダを送るよう書いてみました。
header("Content-Type: text/html; charset=EUC-JP");
header("Expires: Thu, 01 Dec 1994 16:00:00 GMT");
header("Last-Modified: ". gmdate("D, d M Y H:i:s"). " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
しかし、これでもまたまたしっかりIEにキャッシュされてしまっているではありませんか。ガーーーン!!
頼みの綱のネット検索もヒットするのは、どこを見ても回答が途中で打ち切られている掲示板とか、うまくいかないという記述ばかり。めげずに検索すること数十分。。。やっと解決策にたどり着きました!