IEで、キャッシュを無効にするには?

[上に] [前に] [次に]
公儀介錯人 2000/05/25(木) 15:34:39
HTMLファイルでキャッシュを無効にしたいんですが、
NN(NC)だと
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
で大丈夫なのに、IEだとダメです。
どうすればヨイのでしょう?

dddd 2000/05/25(木) 18:51:56
<%
Response.AddHeader "Expires", "0"
If Request.ServerVariables("SERVER_PROTOCOL") = "HTTP/1.0" Then
  Response.AddHeader "Pragma","no-cache"
  Response.CacheControl = "no-cache"
Else
  Response.CacheControl = "no-cache"
End If
%>

ヒソカ 2000/05/25(木) 19:44:12
うーん、httpヘッダをどう設定してもIE5はキャッシュを
作るんだよね、キャッシュされてもこまらない作りにしないと
対応できないような・・・(解決にならんって? スマン)

dddd 2000/05/25(木) 20:30:32
有効期限切っても駄目だっけ?

ヒソカ 2000/05/25(木) 20:35:10
phpだけど

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("LAST-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
header("Cache-Control: no-cash, must-revalidate");
header("Pragma: no-cash");

これで効果なしだった.

dddd 2000/05/25(木) 21:00:48
これでどぉ?

<html>
<head>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
</head>
<body>
</body>
</html>

ヒソカ 2000/05/25(木) 21:24:12
HTTPヘッダとメタタグの重複を承知で

<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("LAST-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
header("Cache-Control: no-cash, must-revalidate");
header("Pragma: no-cash");
?>
<html>
<head>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
</head>
<body>
<h2>TEST PAGE</h2>
</body>
</html>

これを表示させたら、やはりキャッシュされていた.
IE5恐るべし.

dddd 2000/05/25(木) 21:30:33
http://support.microsoft.com/support/kb/articles/Q222/0/64.ASP?LN=EN-US&SD=gn&FR=0
これは参考になる??

ヒソカ 2000/05/25(木) 21:44:48
うーん、コントロールできると書いてあるんだが、
実際キャッシュするのはなぜなんだろう?

ちなみに使っているのは
バージョン:5.00.2919.6307
更新バージョン:;q246094;Q247367
なんだけどね.

いわゆる5.01の最新バージョンだと思うけど.

ヒソカ 2000/05/25(木) 22:02:28
動作状況としては、

ページが更新されていれば新しいページを読みに行く.

ページの更新がない場合キャッシュ動作不明.

ネットワークを切断後ブラウザの戻るボタンでキャッシュを
読み込む.

Temporary Internet Filesフォルダにキャッシュされたファイルの
存在をかくにん.

使用する上では全く支障はないんだがね.
以上

バギンズ 2000/05/26(金) 17:27:05
>公儀介錯人さん
キャッシュを無効にしたい理由はなんでしょう?
理由によっては、別の解決策があるかも。

単純にリンク先のHTMLの更新の問題だけならSSI使って
<A SRC="〜.html?<!--#echo var="DATE_LOCAL"-->">
でもいい気がするけど...
CGI/SSI不可の場合はJavaScriptで同様のことをする。

バギンズ 2000/05/26(金) 17:28:43
間違えました。(^_^;)

<A HREF="〜.html?<!--#echo var="DATE_LOCAL"-->">

公儀介錯人 2000/05/26(金) 17:30:12
> キャッシュを無効にしたい理由はなんでしょう?

しょっちゅう更新するページなので、常にサーバーから読みこませたいのです。

ヒソカ 2000/05/26(金) 17:39:28
上記HTTPヘッダを書くことにより、ネットワークに繋がっている
ときには最新のページを見に言ってますよ。
ネットワーク接続が切れた場合とブラウザの戻るボタンのとき
だけが問題。

偏西風 [E-Mail] [HomePage] 2000/05/29(月) 13:03:34
「公儀介錯人」さん、その後どのようになりましたか?
実は、私もキヤッシュで四苦八苦しているもので、注目していました。
「バギンズ」さんの回答のおかげで、一箇所は解決したのですが、
もう一箇所、リンク先フアィルの更新を特定フレームに表示することが
出来なくて困っています。
もう、理屈は止めて、思いつくことを「滅茶苦茶」テストしています。
「解決マーク」を付ける時は、ぜひ、ヒントなどを載せて頂きたいものです。
(AN HTTPD ローカルサーバーでテスト中)
Netscape Communicator 4.7
Win98 second

公儀介錯人 2000/05/29(月) 13:21:39
SSIは使えるので、リンク先の場合は
<A HREF="〜.html?<!--#echo var="DATE_LOCAL"-->">
で大丈夫だったのですが、URLを直接指定した場合(ブックマークも)などがやっぱりダメなので、解決つけるのをためらってます。
IEって、まったく余計なことをしてくれるよな…。

バギンズ 2000/05/29(月) 13:53:28
公儀介錯人さんはHTMLファイルだけで、最新を表示させたいんですよね?

URLの直接指定に関してはフレームとSSIを使う方法を合わせてれば
回避はできると思いますが、もっと綺麗な方法があるような気がしますね。

ddddさんが書かれている有効期限の方法も駄目ですか?
(有効期限をどう設定するかは別問題としてです)

>偏西風さん
>リンク先ファイルの更新を特定フレームに表示することが
>出来なくて困っています。
TARGET指定がうまくいかないんですか?
これとは別に質問したほうがいいと思います。

バギンズ 2000/05/29(月) 15:09:23
MSのサイトを検索したら、IE5.01ではno-cacheの問題は
解決しているらしいのですが、本当かどうかは不明です...

参考

http://search.support.microsoft.com/worldwide/japan/mts_search.asp?Tmplt=mts_search&SWR=F&Sort=rank%5Bd%5D&Purl=%252Fjapan%252Fproducts%252F&Pfx=MTS&base=Support&sl=sl&nm=Microsoft%2BTechnical%2BSupport&nq=True&KBD=iearchive%2Bor%2Bierelease%2Bor%2Bie_app%2Bor%2Bmsnetwork&MaxP=25&MaxR=200&HDR=@KBArea&Long=F&qu=no-cache&SUBMIT1=%8C%9F%8D%F5%8AJ%8En

[上に] [前に] [次に]