ASP.NET 緩存(2)

HttpCachePolicy和@OutputCache指令。編程

對於輸出緩存的控制,除了使用OutputCache指令外,還能夠使用HttpCachePolicy類,經過該類能夠編程控制緩存。瀏覽器

Response.Cache屬性提供了System.Web.HttpCachePolicy類的一個實例。下面是使用@OutputCache指令和HttpCachePolicy之間等效的代碼:緩存

 

  • 存儲在指定時間段的輸出緩存
    聲明性方法:

    <%@ OutputCache Duration="60" VaryByParam="None" %> 服務器

    編程的方法: ide

    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); Response.Cache.SetCacheability(HttpCacheability.Public); 代理

  • 存儲在產生請求的瀏覽器客戶端上輸出緩存
    聲明性方法:

    <%@ OutputCache Duration="60" Location="Client" VaryByParam="None" %> it

    編程的方法: io

    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); Response.Cache.SetCacheability(HttpCacheability.Private); class

  • 存儲在任何 HTTP 1.1 緩存功能的設備包括代理服務器和客戶端請求的輸出緩存
    聲明性方法:

    <%@ OutputCache Duration="60" Location="Downstream" VaryByParam="None" %> stream

    編程的方法:

    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.SetNoServerCaching();

  • 存儲在 Web 服務器上的輸出緩存
    聲明性方法:

    <%@ OutputCache Duration="60" Location="Server" VaryByParam="None" %>

    編程的方法:

    TimeSpan freshness = new TimeSpan(0,0,0,60); DateTime now = DateTime.Now; Response.Cache.SetExpires(now.Add(freshness)); Response.Cache.SetMaxAge(freshness); Response.Cache.SetCacheability(HttpCacheability.Server); Response.Cache.SetValidUntilExpires(true);

  • 緩存對於每一個 HTTP 請求到達與不一樣城市的輸出:
    聲明性方法:

    <%@ OutputCache duration="60" varybyparam="City" %>

    編程的方法:

    Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); Response.Cache.SetCacheability(HttpCacheability.Public); Response.Cache.VaryByParams["City"] = true;

    VaryByCustom 屬性、 VaryByHeader 屬性和 @ OutputCache 指令中的 VaryByParam 屬性,HttpCachePolicy 類提供了 VaryByHeaders 屬性和 VaryByParams 屬性和 SetVaryByCustom 方法。

 

要關閉輸出緩存的 ASP.NET 網頁在客戶端的位置和代理的位置設置 位置 屬性值爲 ,而後 VaryByParam 值設置爲 @ OutputCache 指令中。使用下面的代碼示例關閉客戶端和代理服務器緩存。

  • 聲明性方法:

    <%@ OutputCache Location="None" VaryByParam="None" %>

  • 編程的方法:

    Response.Cache.SetCacheability(HttpCacheability.NoCache);

相關文章
相關標籤/搜索