如何设置ASP.NET页缓存的过期时间值

1/31/2009来源:ASP.NET技巧人气:7575

若要导致某一页添加到输出缓存中,需要为该页建立到期策略。这可以通过以声明方式或编程方式来实现。

以声明方式为页设置输出缓存到期时间

将 @ OutputCache 指令包括在您要缓存其响应的 asp.net 页(.aspx 文件)中。将 Duration 属性设置为一个正数值,将 VaryByParam 属性设置为一个值。

注意

默认情况下,@ OutputCache 指令将 Cache-Control 标头设置为 Any。

例如,下面的 @ OutputCache 指令将页的到期时间设置为 60 秒:

复制代码

<%@ OutputCache Duration="60" VaryByParam="None" %>
注意

在使用 @ OutputCache 指令时,必须包括一个 VaryByParam 属性,否则将出现分析器错误。如果不希望使用 VaryByParam 属性提供的功能,请将它的值设置为“None”。有关更多信息,请参见缓存页的多个版本。

以编程方式为页设置输出缓存到期时间
在该页的代码中,在 Response 对象的 Cache 属性中设置该页的到期策略。

注意
如果以编程方式设置页的到期时间,则您还必须为缓存的页设置 Cache-Control 标头。为此,请调用 SetCacheability 方法并向其传递 HttpCacheability 枚举值 Public。

下面的代码示例设置与前面过程中的 @ OutputCache 指令相同的缓存策略。

C#

复制代码

Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
   Response.Cache.SetCacheability(HttpCacheability.Public);
   Response.Cache.SetValidUntilExpires(true);
 
Visual Basic

复制代码

Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
   Response.Cache.SetCacheability(HttpCacheability.Public)
   Response.Cache.SetValidUntilExpires(True)
 
当缓存页到期时,以后对该页的请求将导致动态生成的响应。会在指定的持续时间内缓存该响应页。