方法 : キャッシュ キーの依存関係によってページ出力をキャッシュする
更新 : 2007 年 11 月
出力キャッシュ内の別の項目が削除された場合に、キャッシュからページを削除する必要がある場合があります。たとえば、複数のページが使用する処理負荷が大きいレポートをアプリケーション キャッシュに置いて表示するページがあるとします。レポートが変更されるか、またはキャッシュから削除されると、レポートが有効ではなくなるため、ページ出力もキャッシュから削除する必要があります。そのためには、キャッシュされたページ出力が他のキャッシュされた項目に依存するように設定します。
メモ : |
---|
RemoveOutputCacheItem メソッドを呼び出すと、出力キャッシュから任意のページを明示的に削除できます。このメソッドの呼び出しは、個々のアプリケーションのニーズに応じて、Global.asax ファイル、カスタム ASP.NET サーバー コントロール、またはページから実行できます。 |
キャッシュされたページ出力を別のキャッシュ項目に依存させるには
宣言またはプログラムによってページのキャッシュを設定します。詳細については、「方法 : ASP.NET ページのキャッシュに有効期限値を設定する」、「ページのキャッシュの設定」、および「ページの複数バージョンのキャッシュ」を参照してください。
ページ コードで、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
メモ : ASP.NET ユーザー コントロールから AddCacheItemDependency メソッドを呼び出すことはできません。ただし、@ OutputCache ディレクティブを指定するユーザー コントロールで、キャッシュ キーの依存関係を設定する CacheDependency オブジェクトを作成し、それを UserControl オブジェクトの Dependency プロパティに代入することはできます。