2009-03-22 4 views
2
protected void Page_Load(object sender, EventArgs e) 
{Label1.Text = DateTime.Now.ToString();} 

動作し、受信したページ に表示される時刻は10.16です。 10秒後にB1のCache.aspxをリフレッシュすると( ボタンをクリックしてポストバックが発生する)、時刻10.16.30が表示され、 にはすべての後続ポストバック10.16.30が常に表示されます1 時間経過)。 B1が最初にCache.aspxを要求してから数分後にブラウザB2も が同じページを要求した場合、最初の 時間のページを受信すると、B2のCache.aspxは時刻10.16.20を表示し、その後はすべて のB2のポストバック代わりに時間10.16:30が表示されます。OutputCacheは、私は、この新しく作成されたアプリケーションをコンパイルした後、ブラウザB1はCache.aspxを要求する最初の あり、場合妙

A)だから一のキャッシュされたページが最初にCache.aspxを要求するブラウザに を与え、そして第二され、Asp.netは Cache.aspx(したがって、コードが2回実行される)の2つのキャッシュされたバージョンを生成するように思われます キャッシュされたページは、Cache.aspxをリフレッシュするブラウザにのみ表示されますか?

B)私の本ではこのような現象は一度も言及されていないので、 が同じ動作をするのか、それとも私のネット環境が再び「ユニーク」なのか不思議です。

C) )ので、二度のコードを実行する(同じページの2つのコピーを作成するには、時間の無駄のように思えるので、なぜAsp.Netはそのように動作しない - その背後にあるいくつかの推理/メリットがなければなりませんか?

は、「なし」はおそらく、キー/値のペアをオフにしなくても...

+0

関連するすべてのURLが文字の枠でも同じであることを確認してください。 – AnthonyWJones

+0

ASP.NETは実際にはブラウザごとに異なるマークアップを生成します。私はそれが<%@ OutputCache VaryByParam = "none"%>に影響を与えるかどうかはわかりません。 –

+0

>関連するすべてのURLが文字の括弧内にあっても同じですか?別のブラウザのため 私は別の に1つのブラウザからURLをコピーしたので、はい、> ASP.NETが実際に発生しない別のマークアップ... 私はあなたが言っているのか理解が、私はすべての私のtestingsでのFirefoxを使用していないことを確認 – SourceC

答えて

2

完全な推測をありがとう、しかし、おそらくキャッシュは、全体的な要求(クエリ文字列引数、など)によって隔離されています「GET」は単純に「POST」とは異なるものとして数えられますか?

ASP.NETボタンではなく、単純なリンク(<a href...>など)を使用してみてください。

1

私はちょっと試して試してみましたが、マークの勘が正しいと思われます。キャッシュはメソッド(GET/POST)に依存しています。

しかし、このようなデモをASP.NET 2でやっていることを覚えていますが、これは以前のようなものではないと確信しています。
ASP.NET 3.5で変更されたものかもしれませんおよび/またはSP1が、私はそれについての言及を見つけることができませんでした。

私は完全にはわからないが、私はプロとコンを考えることができる。 (IsPostBackプロパティ) response.cache.setcachebility(NOCACHE) 終了

を始める場合、私は をしようとした場合

+0

私はAsp.Net固有のものではないことをうれしく思っています – SourceC

0

は、ボタンをクリックすると、ラベルごとに更新されます。

関連する問題