次の方法で共有


方法 : キャッシュ キーの依存関係によってページ出力をキャッシュする

更新 : 2007 年 11 月

出力キャッシュ内の別の項目が削除された場合に、キャッシュからページを削除する必要がある場合があります。たとえば、複数のページが使用する処理負荷が大きいレポートをアプリケーション キャッシュに置いて表示するページがあるとします。レポートが変更されるか、またはキャッシュから削除されると、レポートが有効ではなくなるため、ページ出力もキャッシュから削除する必要があります。そのためには、キャッシュされたページ出力が他のキャッシュされた項目に依存するように設定します。

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

RemoveOutputCacheItem メソッドを呼び出すと、出力キャッシュから任意のページを明示的に削除できます。このメソッドの呼び出しは、個々のアプリケーションのニーズに応じて、Global.asax ファイル、カスタム ASP.NET サーバー コントロール、またはページから実行できます。

キャッシュされたページ出力を別のキャッシュ項目に依存させるには

  1. 宣言またはプログラムによってページのキャッシュを設定します。詳細については、「方法 : ASP.NET ページのキャッシュに有効期限値を設定する」、「ページのキャッシュの設定」、および「ページの複数バージョンのキャッシュ」を参照してください。

  2. ページ コードで、AddCacheItemDependency メソッドを呼び出します。依存関係を作成するキャッシュ項目の名前を cacheKey パラメータとして渡します。

    ProcessIntensiveReport という項目に依存関係を設定するコード例を次に示します。この項目が変更または削除されると、ページ出力がキャッシュから削除されます。

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.AddCacheItemDependency("ProcessIntensiveReport");
    
        // Set additional properties to enable caching.
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
        Response.Cache.SetCacheability(HttpCacheability.Public);
        Response.Cache.SetValidUntilExpires(true);
    }
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.AddCacheItemDependency("ProcessIntensiveReport")
    
        ' Set additional properties to enable caching.
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
        Response.Cache.SetCacheability(HttpCacheability.Public)
        Response.Cache.SetValidUntilExpires(True)
    End Sub
    
    t1d120ks.alert_note(ja-jp,VS.90).gifメモ :

    ASP.NET ユーザー コントロールから AddCacheItemDependency メソッドを呼び出すことはできません。ただし、@ OutputCache ディレクティブを指定するユーザー コントロールで、キャッシュ キーの依存関係を設定する CacheDependency オブジェクトを作成し、それを UserControl オブジェクトの Dependency プロパティに代入することはできます。

参照

処理手順

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

概念

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

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