方法 : 要求元のブラウザを使用してページのバージョンをキャッシュする
更新 : 2007 年 11 月
Web アプリケーションに要求元のブラウザの種類に基づいて異なる出力を作成するページがある場合、ページを要求しているブラウザの主要なバージョンに基づいて出力されるページの複数のバージョンをキャッシュできます。たとえば、Internet Explorer 6 ブラウザがページを要求すると、ページの 1 つのバージョンがキャッシュされます。Netscape Navigator ブラウザ、バージョン 5 以外の Internet Explorer、またはその他のブラウザがページを要求した場合は、そのページの別のバージョンが出力キャッシュに追加されます。
メモ : |
---|
ブラウザの主な種類とバージョンの情報は、現在の要求の HttpBrowserCapabilities オブジェクトの MajorVersion プロパティを介して渡されます。詳細については、「方法 : ASP.NET Web ページでブラウザの種類を検出する」を参照してください。 |
ブラウザの種類に基づいて、ページの複数のバージョンを宣言によってキャッシュするには
ASP.NET ページには、必須の Duration 属性と、VaryByParam 属性または VaryByControl 属性と共に @ OutputCache ディレクティブを含めます。Duration 属性は、0 より大きい整数に設定する必要があります。ブラウザの種類だけでキャッシュする場合は、VaryByParam 属性を "None" に設定する必要があります。
@ OutputCache ディレクティブで、VaryByCustom 属性を含めて "browser" に設定します。
ページを 10 秒間キャッシュする例を次に示します。出力はブラウザの種類によって異なります。
<%@ OutputCache Duration="10" VaryByParam="None" VaryByCustom="browser" %>
ブラウザの種類に基づいて、ページ出力の複数のバージョンをプログラムによってキャッシュするには
ページ コードで、ページの Response プロパティの Cache プロパティの SetExpires メソッドと SetCacheability メソッドを呼び出します。
custom パラメータに "browser" 値を指定して、SetVaryByCustom メソッドを呼び出します。
ページの複数のバージョンを 1 分間キャッシュする方法のコード例を次に示します。出力は要求したブラウザの種類によって異なります。
protected void Page_Load(object sender, EventArgs e) { Response.Cache.SetExpires(DateTime.Now.AddMinutes(1d)); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetValidUntilExpires(true); Response.Cache.SetVaryByCustom("browser"); }
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0)) Response.Cache.SetCacheability(HttpCacheability.Public) Response.Cache.SetValidUntilExpires(True) Response.Cache.SetVaryByCustom("browser") End Sub
参照
処理手順
方法 : ASP.NET ページのキャッシュを宣言によって設定する
方法 : パラメータを使用してページのバージョンをキャッシュする
方法 : HTTP ヘッダーを使用してページのバージョンをキャッシュする
方法 : カスタム文字列を使用してページの複数のバージョンをキャッシュする