共用方式為


HOW TO:使用快取索引鍵相依性快取頁面輸出

更新:2007 年 11 月

有時候,當快取中的某個項目被移除時,您可能必須從輸出快取中移除網頁。例如,您可能會有網頁其中顯示需要大量處理的報表,該報表會置於應用程式快取中並供多個網頁使用。當報表變更或是從快取移除時,因為報表不再有效,所以您也想要從快取移除網頁輸出。若要從快取移除網頁輸出,可以使快取的網頁輸出相依於其他快取項目。

注意事項:

您可以呼叫 RemoveOutputCacheItem 方法,從輸出快取中明確移除任何網頁。您可以根據應用程式的需求,從 Global.asax 檔、從自訂的 ASP.NET 伺服器控制項或從網頁執行上述作業。

若要使快取的網頁輸出相依於其他快取項目

  1. 在網頁中,以宣告方式或程式設計方式指定快取設定。如需詳細資訊,請參閱 HOW TO:設定 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
    
    注意事項:

    您無法在 ASP.NET 使用者控制項中呼叫 AddCacheItemDependency 方法。然而,在指定 @ OutputCache 指示詞的任何使用者控制項中,您可以建立描述快取索引鍵相依性的 CacheDependency 物件,然後將它指派給 UserControl 物件的 Dependency 屬性。

請參閱

工作

HOW TO:以程式設計方式設定頁面的快取性

概念

快取 ASP.NET Web 網頁

設定網頁的快取性