SSブログ

@OutputCache [ASP.NET]

◆@OutputCache ディレクティブ

<%@ OutputCache Duration="#ofseconds"
   Location="Any | Client | Downstream | Server | None |
     ServerAndClient
"
   Shared="True | False"
   VaryByControl="controlname"
   VaryByCustom="browser | customstring"
   VaryByHeader="headers"
   VaryByParam="parametername"
   CacheProfile="cache profile name | ''"
   NoStore="true | false"
   SqlDependency="database/table name pair | CommandNotification"
%>

ASP.NET Web フォームや、ASP.NET Web フォーム内に含まれるユーザー コントロールの出力キャッシュ ポリシーを制御します。

詳細なリファレンスは、MSDN の公式ヘルプを参照してください。

このディレクティブは、使いどころがあります。

・・・・・・てか、そもそも ASP.NET の根本の挙動がおかしいから、期待通りの挙動をさせるために、こいつでキャッシュを殺さなきゃならない、なんていうケースもあるわけで。

能動的に使えるケースと、こいつを使う必要に迫られるケースと、まあいろいろと事情があるんですが。

普通の ASP.NET Web フォームでキャッシュを制御したい場合も、もちろん使えます。

一方、使わざるを得ない状況っつーのもあります;;;。

状況によっては、Page_Load イベントハンドラに来てくれないことがあるんですよ;;;。

ASP.NET Web フォームで、Page_Load イベントハンドラに来てくんないと、もうお手上げ状態ですよね;;;。

その場合、原因のひとつとして、出力キャッシュが効いている可能性があります。

そういうときは、この @OutputCache ディレクティブを使って、問題の ASP.NET Web フォームの出力キャッシュを殺してみます。

ASP.NET Web フォームで、@OutputCache ディレクティブを使って出力キャッシュを無効にするには、以下のようにします。
<%@ OutputCache Location="None" VaryByParam="None" %>

これで出力キャッシュが死にます。

こうすると、キャッシュが問題の原因だった ASP.NET Web フォームでは、どうにかこうにか、きちんと Page_Load イベントハンドラを通ってくれるようになることがあります。


nice!(2)  コメント(2)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 2

コメント 2

One-for-you

Location="Any そんな感じ
Location="Any | Client  うーん、Any Clientは嫌かなw
Location= Server | None | どこに、行こうか? なぁ?

Shared="True | False" Shareするか否かはJudge入れるとも居ますw

NoStore="true | false" これ系くると、Yes or Noのバイナリ原点な感覚です

毎度、いい加減なコメント でした、ご容赦下され、From 落ちこぼれ生徒 but I feel the value here as I am always describing ! でしたw
by One-for-you (2011-01-08 01:28) 

みみちゃん

落ちこぼれなんて、とんでもない。
出力キャッシュ ポリシーは非常に大事で、キャッシュが効いていると、最新データの処理に支障が出ますからねえ・・・・・・。
要所要所で出力キャッシュを殺しておかないと、思わぬ不具合を仕込んでしまいます。
by みみちゃん (2011-01-08 02:30) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

@PerviousPageTypeWindow(DOMWindow) ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。