共用方式為


使用快取索引鍵相依性快取網頁輸出

將網頁加入輸出快取後,如果超過您在到期原則中指定的時間,網頁便會被移除。有時候可能還不到網頁到期,您就想移除輸出快取中的網頁或網頁的不同版本。例如,如果您的網頁顯示股價或氣溫等變動資料,則如果網頁還沒到期資料就已經更新,網頁便會顯示不正確的資訊。

為了因應這個問題,ASP.NET 提供 HttpResponse.AddCacheItemDependencyHttpResponse.AddCacheItemDependencies 方法,可讓您把與 Cache 物件內項目相依的網頁輸出快取出來 (Cache 物件與網頁所屬的應用程式有關聯) 。

注意 您可以呼叫 HttpResponse.RemoveOutputCacheItem 方法,從輸出快取明確移除任何網頁。您可以從 global.asax 檔案、從之前建立的自訂 ASP.NET 伺服器控制項或從網頁執行上述作業,端視應用程式的需求。

AddCacheItemDependency 方法可讓您在網頁和 Cache 中的單一項目間建立關聯性 (Relationship),而 AddCacheItemDependencies 方法可讓您在網頁和 Cache 項目陣列間建立關聯性。只要任何與網頁相依的項目有變動或從應用程式 Cache 移除,網頁輸出也會失效並從輸出快取移除。

注意 您不可以從 Web Form 使用者控制項使用這些方法。

若要使快取的網頁輸出與 Cache 項目相依

  1. 以宣告方式或以程式設計方式,指定快取網頁輸出的設定。如需詳細資訊,請參閱設定網頁快取的到期設定網頁的快取性快取網頁的多個版本

  2. 在網頁的程式碼宣告區塊或程式碼後置檔案中,使用 Cache.Item 屬性、Cache.Add 方法或 Cache.Insert 方法將一個項目加入至 Web 應用程式的 Cache 物件中。

  3. 在程式碼宣告區塊或網頁的程式碼後置檔案中,使用 Response 物件語法呼叫 AddCacheItemDependencyAddCacheItemDependencies 方法,指定快取項目或與網頁相依的項目。

    注意 若要使用這些方法,傳遞給它的引數必須為指定給快取項目的快取索引鍵,而快取項目則由 Cache.Item 屬性、Cache.Add 方法或 Cache.Insert 方法指定。

下列範例假設應用程式包含溫度元件。這個元件使用 Cache.Insert 方法將溫度置入應用程式 Cache

Cache.Insert("Temperature.CurrentTemperature", currentTemperature);
[Visual Basic]
Cache.Insert("Temperature.CurrentTemperature", currentTemperature)

下列程式碼宣告區塊或程式碼後置檔案中的網頁程式碼會取得 Cache 內儲存的目前溫度,將它轉變為字串,然後加以顯示。接著將其輸出快取版本設為與 Temperature.CurrentTemperature 索引鍵相依。從這時候開始,只要溫度元件更新溫度,網頁版本便會從輸出快取清除。後續要求網頁時,網頁會再次被放入輸出快取。

int temperature = (int) Cache.Get("Temperature.CurrentTemperature");
LabelTemperature.Text = temperature.ToString();
Response.AddCacheItemDependency("Temperature.CurrentTemperature");
[Visual Basic]
Dim temperature as Integer
temperature = Cache.Get("Temperature.CurrentTemperature")
LabelTemperature.Text = temperature.ToString()
Response.AddCacheItemDependency("Temperature.CurrentTemperature")

請參閱

快取 ASP.NET 網頁 | HttpCacheability 列舉型別 | HttpCachePolicy 類別 | HttpResponse 類別 | @ OutputCache 指示詞