HOW TO:使用快取索引鍵相依性快取頁面輸出
更新:2007 年 11 月
有時候,當快取中的某個項目被移除時,您可能必須從輸出快取中移除網頁。例如,您可能會有網頁其中顯示需要大量處理的報表,該報表會置於應用程式快取中並供多個網頁使用。當報表變更或是從快取移除時,因為報表不再有效,所以您也想要從快取移除網頁輸出。若要從快取移除網頁輸出,可以使快取的網頁輸出相依於其他快取項目。
注意事項: |
---|
您可以呼叫 RemoveOutputCacheItem 方法,從輸出快取中明確移除任何網頁。您可以根據應用程式的需求,從 Global.asax 檔、從自訂的 ASP.NET 伺服器控制項或從網頁執行上述作業。 |
若要使快取的網頁輸出相依於其他快取項目
在網頁中,以宣告方式或程式設計方式指定快取設定。如需詳細資訊,請參閱 HOW TO:設定 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 屬性。