共用方式為


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

更新:2007 年 11 月

如果 Web 應用程式包含根據提出要求之瀏覽器的類型而建立不同輸出的網頁,您可以根據要求網頁的瀏覽器主要版本,快取網頁輸出的多個版本。例如,當 Internet Explorer 6 瀏覽器要求網頁時,就會快取網頁的一個版本。Netscape Navigator 瀏覽器、其他版本的 Internet Explorer 或任何其他的瀏覽器要求這個網頁時,另一個版本的網頁會被加入輸出快取。

注意事項:

主要版本和瀏覽器類型資訊,是經由目前要求中之 HttpBrowserCapabilities 物件的 MajorVersion 屬性傳遞。如需詳細資訊,請參閱 HOW TO:在 ASP.NET Web 網頁中偵測瀏覽器類型

若要根據瀏覽器類型,以宣告方式快取網頁的多個版本

  1. 在 ASP.NET Web 網頁中,使用必要的 DurationVaryByParamVaryByControl 屬性包含 @ OutputCache 指示詞。Duration 屬性必須設定為大於零的整數。如果您只想根據瀏覽器類型進行快取,請將 VaryByParam 屬性設定為 "None"。

  2. @ OutputCache 指示詞中,包含 VaryByCustom 屬性並將值設定為 "browser"。

    下列程式碼範例會導致快取網頁 10 秒鐘。輸出會根據瀏覽器類型而有所不同。

    <%@ OutputCache Duration="10" VaryByParam="None" VaryByCustom="browser" %>
    

若要根據瀏覽器類型,以程式設計方式快取網頁的多個版本

  1. 在網頁的程式碼中,呼叫網頁 Response 屬性之 Cache 屬性上的 SetExpiresSetCacheability 方法。

  2. 呼叫 SetVaryByCustom 方法,在 custom 參數中傳遞 "browser" 值。

    下列程式碼範例示範如何將網頁的多個版本快取一分鐘。輸出會根據提出要求的瀏覽器類型而有所不同。

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Cache.SetExpires(DateTime.Now.AddMinutes(1d));
        Response.Cache.SetCacheability(HttpCacheability.Public);
        Response.Cache.SetValidUntilExpires(true);
        Response.Cache.SetVaryByCustom("browser");
    }
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Response.Cache.SetExpires(DateTime.Now.AddMinutes(1.0))
        Response.Cache.SetCacheability(HttpCacheability.Public)
        Response.Cache.SetValidUntilExpires(True)
        Response.Cache.SetVaryByCustom("browser")
    End Sub
    

請參閱

工作

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

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

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

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

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

概念

快取 ASP.NET Web 網頁

設定網頁的快取性

快取網頁的多個版本