次の方法で共有


方法 : HTTP ヘッダーを使用してページのバージョンをキャッシュする

更新 : 2007 年 11 月

ASP.NET では、指定する HTTP ヘッダーの値に基づいてページの複数のバージョンをキャッシュできます。ページが要求されたときにアプリケーションに渡されるヘッダーは、単一のヘッダー、複数のヘッダー、またはすべてのヘッダーをキャッシュするように指定できます。

HTTP ヘッダーの値に基づいて、ページの複数のバージョンを宣言によってキャッシュするには

  1. ASP.NET ページには、必要な Duration 属性と VaryByParam 属性または VaryByControl 属性を @ OutputCache ディレクティブを含めます。Duration 属性は、0 より大きい整数に設定する必要があります。HTTP ヘッダー値のみでキャッシュする場合は、VaryByParam 属性を "None" に設定する必要があります。

  2. @ OutputCache ディレクティブに VaryByHeader 属性を含め、その値をキャッシュの内容を変更する HTTP ヘッダーの名前に設定します。

    60 秒間ページをキャッシュし、Accept-Language HTTP ヘッダーによって渡される値に基づいてキャッシュするページのバージョンを設定する例を次に示します。

    <%@ OutputCache Duration="60" VaryByParam="None" VaryByHeader="Accept-Language" %>
    
    a6s4ks5w.alert_note(ja-jp,VS.90).gifメモ :

    キャッシュする内容を複数のヘッダー値に基づいて切り替えるには、ヘッダー名の一覧をセミコロン (;) で区切って記述します。キャッシュする内容をすべてのヘッダー値に基づいて切り替えるには、VaryByHeader 属性の値をアスタリスク (*) に設定します。

HTTP ヘッダーの値に基づいて、ページの複数のバージョンをプログラムによってキャッシュするには

  1. ページの Page_Load メソッドで、Response オブジェクトの Cache プロパティに対して SetCacheability メソッドと SetExpires メソッドを呼び出します。

  2. VaryByHeaders プロパティの HTTP ヘッダーの値を true に設定します。

    Accept-Language HTTP ヘッダーの値が異なる要求に対して、ページの複数のバージョンを 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.VaryByHeaders["Accept-Language"] = true;
    }
    
    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.VaryByHeaders("Accept-Language") = true
    End Sub
    
    a6s4ks5w.alert_note(ja-jp,VS.90).gifメモ :

    複数のヘッダーに基づいてキャッシュする内容を切り替える場合は、VaryByHeaders プロパティに複数の値を設定する必要があります。すべてのヘッダーに基づいてキャッシュする内容を切り替える場合は、VaryByHeaders["VaryByUnspecifiedParameters"] を true に設定します。

参照

処理手順

方法 : ASP.NET ページのキャッシュを宣言によって設定する

方法 : ページのキャッシュをプログラムによって設定する

方法 : 要求元のブラウザを使用してページのバージョンをキャッシュする

方法 : パラメータを使用してページのバージョンをキャッシュする

方法 : カスタム文字列を使用してページの複数のバージョンをキャッシュする

概念

ASP.NET ページのキャッシュ

ページのキャッシュの設定

ページの複数バージョンのキャッシュ