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

更新 : 2007 年 11 月

ページをキャッシュする際、クエリ文字列のパラメータ値やポストバック時にページと共に送信された値に基づいて、生成される出力が異なる場合があります。たとえば、ユーザーの状態に基づいてストアの場所を示すページがあるとします。このページで "state" クエリ文字列値が取得され、状態ごとに異なるバージョンでページが生成される場合があります。

クエリ文字列値やフォーム ポスト値として送信されたパラメータに基づいて、複数バージョンのページ応答をキャッシュできます。

y96218s9.alert_note(ja-jp,VS.90).gifメモ :

ASP.NET では、キーと値のペアが同じであるクエリ文字列値またはフォーム ポスト値は、パラメータが渡される順序にかかわらず、キャッシュの処理では同じものとして扱われます。ただし、キャッシュの処理ではパラメータ名の大文字と小文字が区別されるため、ASP.NET がキャッシュするページは、パラメータ名と値が大文字の場合と小文字の場合で、バージョンが異なります。

パラメータを使用し、複数バージョンのページ出力を宣言によってキャッシュするには

  1. ASP.NET ページに、Duration 属性を持つ @ OutputCache ディレクティブを含めます。Duration 属性は必須で、0 より大きい整数に設定する必要があります。

  2. @ OutputCache ディレクティブに、VaryByParam 属性を含め、その値をページを切り替えるクエリ文字列またはフォーム ポストのパラメータの名前に設定します。

    ページを 60 秒でキャッシュし、City クエリ文字列値またはフォーム ポストのパラメータに基づいて、異なるバージョンのページ出力をキャッシュするように指定するコード例を次に示します。

    <%@ OutputCache Duration="60" VaryByParam="City" %>
    
    y96218s9.alert_note(ja-jp,VS.90).gifメモ :

    出力キャッシュを複数のパラメータに基づいて切り替えるには、パラメータ名の一覧をセミコロン (;) で区切って記述します。すべてのパラメータ値ごとにキャッシュを切り替えるには、VaryByParam 属性をアスタリスク (*) に設定します。City パラメータと ZipCode パラメータに基づいてページ出力を切り替える方法を次のコード例に示します。

パラメータを使用し、複数バージョンのページ出力をプログラムによってキャッシュするには

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

  2. Response オブジェクトの VaryByParams プロパティに対する引数としてパラメータ名を指定し、プロパティを true に設定します。

    サーバーに着信した要求の Zip パラメータの値に応じて、異なるバージョンのページをキャッシュする方法を次のコード例に示します。

    Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0));
    Response.Cache.SetCacheability(HttpCacheability.Public);
    Response.Cache.SetValidUntilExpires(true);
    Response.Cache.VaryByParams["Zip"] = true;
    
    Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0))
    Response.Cache.SetCacheability(HttpCacheability.Public)
    Response.Cache.SetValidUntilExpires(True)
    Response.Cache.VaryByParams("Zip") = True
    
    y96218s9.alert_note(ja-jp,VS.90).gifメモ :

    キャッシュされる内容を複数のパラメータに基づいて切り替える場合は、VaryByParams プロパティを複数回設定します。キャッシュする内容をすべてのヘッダー値に基づいて切り替えるには、VaryByHeader 属性の値をアスタリスク (*) に設定します。City パラメータと Zip パラメータに基づいてページ出力を切り替える方法を次のコード例に示します。

参照

処理手順

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

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

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

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

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

概念

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

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

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