- PR -

ASP.NETで画面がキャッシュされる!?

1
投稿者投稿内容
Z80
会議室デビュー日: 2005/01/26
投稿数: 14
投稿日時: 2005-02-15 12:33
こんにちわ、ASP.NET初心者です。

WEBフォーム上で自作メッセージボックスを
showModalDialogで表示しているのですが、
1回目は正しく表示され2回目移行が
1回目にキャッシュした画面を表示します。

自作メッセージボックスをキャッシュしない設定にしたいのですが、
HTMLタグとかaspxのプロパティーとか何か設定する要素とかが
あるのでしょうか?
素人なので皆目見当が付きません・・
どうか宜しくお願いいたします。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-02-15 13:22
本当にキャッシュですかね。

キャッシュならPage.Responseプロパティの型HttpResponseのプロパティCacheで制御できます。
Z80
会議室デビュー日: 2005/01/26
投稿数: 14
投稿日時: 2005-02-15 14:57
一郎さん回答ありがとうございます。

>本当にキャッシュですかね。

作りから見ると・・呼出元は単純に
セッションオブジェクトにメッセージをセットして
<script>
var ret = window.showModalDialog('xxxx.aspx','',
'dialogHeight: 220px; dialogWidth: 490px;
center: Yes; help: Yes; resizable: No; status: No;')
</script>
Response.Write(上記スクリプト) でコールしています。

呼び出された側は単純にフォームロード時にセッションオブジェクトの
メッセージ内容をコントロールに表示する様な処理になっています。

呼び出された方のWEBフォームにブレイクポイントを設定して
確認しても2回目移行はやはり処理されていない様です。

そのほかセッションオブジェクトのインスタンスも調べたのですが
違う様です。

>キャッシュならPage.Responseプロパティの型HttpResponseのプロパティCacheで制御できます。

当方素人なもので、
キャッシュしないと言う設定方法が良くわかりません。
すみません。(+_+
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-02-15 15:17
引用:

一郎さんの書き込み (2005-02-15 13:22) より:
本当にキャッシュですかね。


自分の環境で試してみましたが、キャッシュっぽいです。

引用:

Z80さんの書き込み (2005-02-15 14:57) より:
キャッシュしないと言う設定方法が良くわかりません。
すみません。(+_+


Response.Cache.SetCacheability(HttpCacheability.NoCache)

MSDNのキーワードに「キャッシュ」と指定すると色々出てくるので読んでください。一応コード書いときますが、意味もわからないまま使うのは良くないので。

ちなみに、クライアントのインターネットプションで一時ファイルを削除しないと有効にならないみたいです。

以下は蛇足ですが、URLが前回と異なるとキャッシュが使われないので、別案として、子画面のURLに現在時刻などの無意味なRequestパラメータをつける、という方法もあります。
Z80
会議室デビュー日: 2005/01/26
投稿数: 14
投稿日時: 2005-02-15 15:37
ぼのぼのさん 回答ありがとうございます。

<script>
var ret = window.showModalDialog('xxxx.aspx?Time=[現在時刻]','',
'dialogHeight: 220px; dialogWidth: 490px;
center: Yes; help: Yes; resizable: No; status: No;')
</script>
Response.Write(上記スクリプト) 
でコールし直してみたらキャッシュされず動作しました。

素人なものでキャッシュ制御が全般的に良く分からないので
初めから勉強してみます。

どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)