共用方式為


設定網頁的快取性

更新:2007 年 11 月

網頁或使用者控制項的快取性,是指網頁在網頁的回應生命週期內,是否能夠在裝置上快取網頁。能夠快取網頁的裝置,包括提出要求的瀏覽器、回應要求的 Web 伺服器,以及任何在要求或回應資料流中具快取功能的其他裝置 (例如 Proxy 伺服器)。

當 Web 伺服器傳送回應給發出要求的瀏覽器時,伺服器會在回應中包含 HTTP 標頭的 Cache-Control 欄位,其中會定義能夠快取網頁的裝置。依據應用程式需求的不同,您可以定義那些裝置應不應該快取個別 ASP.NET Web 網頁。例如,您可能希望使用者登入網頁的快取性設定,與顯示目錄中產品選項之網頁上的快取性設定不同。在登入網頁的情況中,基於安全性考量,您可能希望只在伺服器上快取網頁,但是在任何裝置上都能夠快取目錄網頁。

您可以使用 HttpCacheability 列舉型別中的值,設定 ASP.NET Web 網頁的快取性。列舉型別有下列值。前三個值會直接對應至 Cache-Control HTTP 標頭設定,最後三個值是特殊值。

  • NoCache 指定提出要求的裝置每次都應該從 Web 伺服器取得回應

  • Public 允許以用戶端和共用 (Proxy) 快取來快取回應

  • Private 指定只有在用戶端上才能快取回應,並且不是由共用 (Proxy 伺服器) 快取所快取

  • Server 指定回應只會快取在原始伺服器上

  • ServerAndNoCache 同時套用 Server 和 NoCache 設定,表示內容已快取在伺服器上,但是所有其他項目都會被明確拒絕而無法具有快取回應的能力

  • ServerAndPrivate 指定回應只會在原始伺服器和提出要求的用戶端上快取;不允許 Proxy 伺服器快取回應

您可以將 Location 屬性包含在 @ OutputCache 指示詞中,然後指定其中一個 OutputCacheLocation 列舉值,藉此以宣告方式設定網頁的快取性。您也可以使用 SetCacheability 方法為網頁指定 HttpCacheability 值,藉此以程式設計方式設定網頁的快取性。您可以經由 Response 類別的 Cache 屬性存取這個方法。

注意事項:

如果您使用 @ OutputCache 指示詞設定網頁的快取性,就必須宣告 Duration 屬性,以及 VaryByControl 屬性或 VaryByParam 屬性和 Location 屬性。Duration 屬性必須設定為大於零的值。如果您不想使用 VaryByParamVaryByControl 參數的功能,可以將 VaryByParam 屬性設定為 "None"。如需詳細資訊,請參閱 HOW TO:設定 ASP.NET 網頁快取的到期值快取網頁的多個版本

您可以在應用程式的 Web.config 檔中建立快取設定檔,然後參考網頁中的設定檔,當做使用 @ OutputCache 指示詞設定網頁快取性的替代用法。如需詳細資訊,請參閱 ASP.NET 的快取組態

請參閱

工作

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

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

概念

快取 ASP.NET Web 網頁

參考

Duration