共用方式為


快取網頁的多個版本

更新:2007 年 11 月

有時您想要快取會根據要求建立不同版本的網頁。例如,網頁可能會根據查詢字串中傳遞的值而有不同的輸出。

ASP.NET 可以讓您在輸出快取中,快取相同網頁的多個版本。您可以根據下列條件而有不同的輸出快取:

  • 初始要求 (HTTP GET) 中的查詢字串

  • 回傳所傳遞的控制項值 (HTTP POST 值)

  • 隨要求一起傳遞的 HTTP 標頭

  • 提出要求之瀏覽器的主要版本號碼

  • 網頁中的自訂字串。在這種情況下,您可以在 Global.asax 檔中建立自訂程式碼以指定網頁的快取行為

您可以使用 @ OutputCache 指示詞的屬性 (Attribute),以宣告方式快取網頁輸出的多個版本,並且使用 HttpCachePolicy 類別的屬性 (Property) 和方法,以程式設計方式快取網頁輸出的多個版本。

@ OutputCache 指示詞包含四個屬性,能夠讓您快取網頁輸出的多個版本:

  • VaryByParam 屬性可以讓您根據查詢字串而有不同的快取輸出

  • VaryByControl 屬性可以讓您根據控制項值而有不同的快取輸出

  • VaryByHeader 屬性可以讓您根據要求的 HTTP 標頭而有不同的快取輸出

  • VaryByCustom 屬性可以讓您根據瀏覽器類型或定義的自訂字串,而有不同的快取輸出

    注意事項:

    您必須在任何 @ OutputCache 指示詞中包含 VaryByParam 屬性或 VaryByControl 屬性兩者之一。然而,如果您不需要根據控制項或參數而有不同的快取輸出,可以定義 VaryByParam,並將它的值設定為 None。

HttpCachePolicy 類別提供兩種屬性和一種方法,可以讓您以程式設計方式,指定能夠使用宣告方式設定的相同快取組態。VaryByParamsVaryByHeaders 屬性可以讓您分別指定查詢字串參數和標頭名稱,您可以利用這些參數和名稱產生不同的快取原則。SetVaryByCustom 方法可以讓您定義自訂字串,而根據這個字串會有不同的輸出快取。

請參閱

工作

HOW TO:以宣告方式設定 ASP.NET 網頁的快取性

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

HOW TO:使用要求的瀏覽器快取頁面的多個版本

HOW TO:使用參數快取頁面的多個版本

HOW TO:使用 HTTP 標頭快取頁面的多個版本

HOW TO:使用自訂字串快取頁面的多個版本

概念

快取 ASP.NET Web 網頁

設定網頁的快取性