如何:以声明方式设置 ASP.NET 页的可缓存性
更新:2007 年 11 月
某页或用户控件的可缓存性指某页能否在其响应生命周期内缓存到某个设备上。这些设备包括发出请求的客户端(浏览器),响应请求的 Web 服务器,以及请求或响应流中任何具有缓存功能的设备(例如代理服务器)。
如果您在设计时知道某页需要什么样的可缓存性设置,您可以以声明方式设置可缓存性。该页将为所有请求使用相同的可缓存性设置。有关更多信息,请参见设置页的可缓存性。
以声明方式设置页的可缓存性
在页中包含 @ OutputCache 指令,并定义 Duration 和 VaryByParam 属性。
在 @ OutputCache 指令中包含 Location 属性,并将其值定义为 OutputCacheLocation 枚举中的下列值之一:Any、Client、Downstream、Server、ServerAndClient 或 None。
下面的代码演示如何将页的可缓存性设置为 60 秒:
<%@ OutputCache Duration="60" VaryByParam="None"%>
说明: 默认设置为 Any。如果未定义 Location 属性,则可以将页输出缓存在与响应有关的所有具有缓存功能的网络设备上。其中包括请求客户端、原服务器、以及响应通过的任何代理服务器。
使用缓存配置文件以声明方式设置页的可缓存性
在应用程序的 Web.config 文件中定义缓存配置文件,在配置文件中包括 duration 和 varyByParam 设置。
下面的 <caching> 配置元素定义名为 Cache30Seconds 的缓存配置文件,它将在服务器上将页缓存 30 秒之久。
<caching> <outputCacheSettings> <outputCacheProfiles> <add name="Cache30Seconds" duration="30" varyByParam="none" /> </outputCacheProfiles> </outputCacheSettings> </caching>
在使用配置文件的每个 ASP.NET 页中包含 @ OutputCache 指令,并将 CacheProfile 属性设置为 Web.config 文件中定义的缓存配置文件的名称。
下面的代码指定页应当使用名为 Cache30Seconds 的缓存配置文件:
<%@ OutputCache CacheProfile="Cache30Seconds" %>