ページのキャッシュの設定
更新 : 2007 年 11 月
ページまたはユーザー コントロールのキャッシュの設定は、応答ライフサイクルでデバイスがページをキャッシュできるかどうかを表します。ページをキャッシュできるデバイスには、要求を行うブラウザ、要求に応答する Web サーバー、および要求ストリームや応答ストリームで指定されたキャッシュ機能を持つプロキシ サーバーなどのデバイスが含まれます。
Web サーバーは、応答を要求元のブラウザに送信する際に、ページをキャッシュできるデバイスを定義する HTTP ヘッダーに Cache-Control フィールドを含めます。アプリケーションのニーズによって、各デバイスが個々の ASP.NET ページをキャッシュするか、またはキャッシュしないかを定義できます。たとえば、ユーザーがログオンするページと、カタログから製品を選択するページに異なるキャッシュの設定が必要になる場合があります。ログオンのページでは、セキュリティ上の理由から、サーバーだけでキャッシュする必要があります。カタログのページはすべてのデバイスでキャッシュできます。
ASP.NET ページでは、HttpCacheability 列挙値を使用してキャッシュを設定できます。列挙定数の値は、次のとおりです。前半の 3 つは直接 Cache-Control HTTP ヘッダーの設定に割り当てられ、後半の 3 つは特別の値です。
NoCache デバイスは、要求するたびに Web サーバーから応答を受け取るように指定します。
Public 応答をクライアントおよび共有された (プロキシ) キャッシュでキャッシュすることを許可します。
Private 応答をクライアントだけでキャッシュし、共有された (プロキシ サーバー) キャッシュではキャッシュしないことを指定します。
Server 応答を元のサーバーだけでキャッシュするように指定します。
ServerAndNoCache Server と NoCache の両方の設定を適用し、コンテンツはサーバーでキャッシュし、その他の応答をキャッシュする機能は明示的に無効にすることを指定します。
ServerAndPrivate 応答を元のサーバーと要求元のクライアントだけでキャッシュし、プロキシ サーバーではキャッシュしないように指定します。
ページのキャッシュは、@ OutputCache ディレクティブに Location 属性を指定し、OutputCacheLocation 列挙値の 1 つを指定すると、宣言によって設定できます。ページのキャッシュは、SetCacheability メソッドを使用してページの HttpCacheability 値を指定すると、プログラムによって設定できます。このメソッドには、Response クラスの Cache プロパティを使用してアクセスできます。
メモ : |
---|
@ OutputCache ディレクティブを使用してページのキャッシュを設定する場合は、Duration 属性を宣言し、Location 属性と共に VaryByControl 属性または VaryByParam 属性を宣言する必要があります。Duration 属性は、0 より大きい値に設定する必要があります。VaryByParam パラメータまたは VaryByControl パラメータの機能を使用しない場合は、VaryByParam 属性を "None" に設定します。詳細については、「方法 : ASP.NET ページのキャッシュに有効期限値を設定する」および「ページの複数バージョンのキャッシュ」を参照してください。 |
@ OutputCache ディレクティブを使用してページのキャッシュを設定するもう 1 つの方法は、アプリケーションの Web.config ファイルにキャッシュ プロファイルを作成し、ページでこのプロファイルを参照することです。詳細については、「ASP.NET のキャッシュの構成」を参照してください。
参照
処理手順
方法 : ASP.NET ページのキャッシュを宣言によって設定する