ページの複数バージョンのキャッシュ
更新 : 2007 年 11 月
場合によっては、要求に基づいて異なるバージョンが作成されているページをキャッシュする必要があります。たとえば、クエリ文字列で渡される値によって異なる出力を含むページがあります。
ASP.NET では、出力キャッシュに同じページの複数のバージョンをキャッシュできます。出力キャッシュは、次の内容によって切り替えることができます。
初期要求 (HTTP GET) におけるクエリ文字列。
ポストバック (HTTP POST 値) 時に渡されるコントロール値。
要求と共に渡される HTTP ヘッダー。
要求しているブラウザのメジャー バージョン番号。
ページのカスタム文字列。この場合、Global.asax ファイルにカスタム コードを作成して、ページのキャッシュの動作を指定します。
ページ出力の複数のバージョンは、@ OutputCache ディレクティブの属性を使用すると宣言的によってキャッシュでき、HttpCachePolicy クラスのプロパティとメソッドを使用するとプログラムによってキャッシュできます。
@ OutputCache ディレクティブには、ページ出力の複数のバージョンをキャッシュするための 4 つの属性があります。
VaryByParam 属性を使用すると、キャッシュされる出力をクエリ文字列に基づいて切り替えることができます。
VaryByControl 属性を使用すると、キャッシュされる出力をクエリ文字列に基づいて切り替えることができます。
VaryByHeader 属性を使用すると、キャッシュされる出力を要求の HTTP ヘッダーに基づいて切り替えることができます。
VaryByCustom 属性を使用すると、キャッシュされる出力をブラウザの種類または定義したカスタム文字列に基づいて切り替えることができます。
メモ : すべての @ OutputCache ディレクティブに、VaryByParam 属性または VaryByControl 属性のどちらかを含める必要があります。ただし、コントロールまたはパラメータによってキャッシュされた出力を切り替える必要がない場合、値を None にして VaryByParam を定義できます。
HttpCachePolicy クラスは、宣言によって設定できるキャッシュの構成と同じ構成をプログラムによって指定するための 2 つのプロパティと 1 つのメソッドを提供します。VaryByParams プロパティと VaryByHeaders プロパティを使用すると、キャッシュ ポリシーを切り替えるためのクエリ文字列のパラメータとヘッダー名をそれぞれ指定できます。SetVaryByCustom メソッドを使用すると、出力キャッシュを切り替えるときの基準とするカスタム文字列を定義できます。
参照
処理手順
方法 : ASP.NET ページのキャッシュを宣言によって設定する
方法 : 要求元のブラウザを使用してページのバージョンをキャッシュする
方法 : パラメータを使用してページのバージョンをキャッシュする
方法 : HTTP ヘッダーを使用してページのバージョンをキャッシュする
方法 : カスタム文字列を使用してページの複数のバージョンをキャッシュする