- - PR -
ASP.NETでページキャッシュさせない方法
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-10-23 09:57
表題の件で悩んでおります。
ページAとページBがあります。ページAはDataGridコントロールが貼り付けられて いて、テンプレート列を使用してImageコントロールを埋め込んでいます。 ページAは写真付きの一覧表で、そのうちの1行をクリックするとページBへと遷移する仕組みになっています。 ページBでは対象行の情報を受け取り、詳細情報の編集を行えます。この時、ページAで表示している写真の更新も行える仕組みなのですが、ページBで写真を更新たにも関わらず、ページAに戻っても写真が古いままになってしまいます。 そこでF5キーを一度押せばページが更新されて写真が変わります。ちなみに、写真を更新しても写真のファイル名はそのままです。データのみ更新しています。 ページAからページB、ページBからページAの遷移にはresponse.redirectを使用しています。 ページAが画像データをキャッシュしてしまっていると思い、色々調べて以下のような設定を行いました。 ページAのaspxに以下を追加 <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="-1"> <%@ OutputCache Duration="1" VaryByParam="none"%> マイクロソフトのページを見るとOutputCacheディレクティブを設定すれば、いらない のかもしれませんが、ディレクティブだけでは解消できずに、metaも入れてみましたが 効果はなしです。 アドバイス等よろしくお願いします。 環境 Visualstudio.NET 2003 OS WindowsXP SP2 言語 VB.NET | ||||||||||||
|
投稿日時: 2006-10-23 10:37
Page_Loadイベントで以下のコードを入れてみてください。
| ||||||||||||
|
投稿日時: 2006-10-23 11:36
うにくま様
レスありがとうございます。 Response.Cache.SetCacheability(HttpCacheability.NoCache) をページAのPage_Loadに入れてみましたが、変化なしです。 ちなみにページAの実行時のHTMLヘッダは以下のようになっています。 <HEAD> <title>result</title> <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"> <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE"> <meta content="JavaScript" name="vs_defaultClientScript"> <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="-1"> </HEAD> | ||||||||||||
|
投稿日時: 2006-10-23 11:46
<%@ OutputCache Location="None" VaryByParam="None" %>
これでどうでしょうか。 | ||||||||||||
|
投稿日時: 2006-10-23 12:55
> ちなみに、写真を更新しても写真のファイル名はそのままです。データのみ更新しています。
画像データがキャッシュされてるんじゃないですか? だとしたらページのキャッシュを無効にするんじゃなくて、ファイル名変えるとか、とりあえず適当なクエリ文字列追加してやるとかといった手段が有効かと。 | ||||||||||||
|
投稿日時: 2006-10-23 13:09
ASP.NETのことは、わからないけど、
念のため、
を入れてみてはいかが。 さらに念を押すのであれば、HTMLのヘッダで
とするのではなくて、
にしてみるとか。 この辺が参考になる? http://www.atmarkit.co.jp/fjava/rensai2/webopt12/webopt12.html 以下追加 RFC 2068見ると、 Expiresに無効な日付フォーマットの場合は、クライアントはその日付を過去として扱わなければならない、とあるので上述内容を試しても、効果ないかもしれない。 [ メッセージ編集済み 編集者: かずくん 編集日時 2006-10-23 13:22 ] | ||||||||||||
|
投稿日時: 2006-10-23 17:44
私も同じようなことで悩んだことがあります。
その時は画像ファイルのURLの後ろに?d=年月日時分秒をつけて URLを表示するたび違うものにしました。 | ||||||||||||
|
投稿日時: 2006-10-23 21:35
画像データは、どの様にして表示していますか?
Aページではなく、画像を返しているページがキャッシュされているとか。
ん? img src="..." で出している? _________________ |