2011年07月23日

【Java】どうしてもIEがページをキャッシュする時・・・

もうすぐアナログ放送が終了しますね。
我が家は地デジ化していないため、
もうすぐテレビは見えなくなります。ジャンボです。



Struts と Ajax を組み合わせた画面をペソペソ作っていたのですが、
IEだとどうしてもページをキャッシュしてしまい、
ヒストリーバック時が上手く動かない事態に・・・。

HTMLのヘッダーとかに下記を記載したのですが

<head>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
・・・(省略)・・・
</head>

全然ダメ。

意地でもキャッシュしやがる・・・。
Temporary Internet Filesに嫌味かのように作成される・・・。

ムキー!! (ノ ゚皿゚)ノ ==== ┻━━┻



そんな訳で、HTTPレスポンスを直接いじるようにしたら、
IEでもキャッシュされなくなった。
忘れない様に自分用にメモ。


<%@ page import="java.util.Calendar" %>
<%
response.setHeader("pragma","no-cache"); // (1)
response.setHeader("Cache-Control","no-cache"); // (1)
response.setDateHeader("Last-Modified", Calendar.getInstance().getTime().getTime()); // (2)
response.setDateHeader("Expires", 0); // (3)
%>


(1): HTTP1.0/1.1 の仕様にあるキャッシュ無効のヘッダーを付与
(2): 最終更新日を現在の日時に設定
(3): 有効期限を 1970/01/01 00:00:00 に設定



ローカル上では (1) のみで大丈夫でしたが、
間にキャッシュサーバが入った時で対応が変わる可能性があるので、
(2), (3) も念のため付与。

あと、HTMLのHEADタグ内にもキャッシュ無効の記載を入れた。



ふう・・・。
posted by ジャンボ at 22:21| Comment(0) | TrackBack(0) | 雑記:PC | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック