[转]ASP.NET 缓存功能(一)

生成高性能、可缩放的 Web 应用程序最重要的因素之一是能够在首次请求项时将这些项存储在内存中,不管它们是数据对象、页还是页的某些部分。可以将这些项存储在 Web 服务器上或请求流中的其他软件上,例如代理服务器或浏览器。使您能够避免重新创建满足先前请求的信息,尤其是那些需要大量处理器时间或资源的信息。这就是通常所说的缓存,它允许您使用多种技术跨 HTTP 请求存储页输出或应用程序数据并对其进行重复使用。这样,服务器不需要重新创建信息,从而节省了时间和资源。

ASP.NET 提供了两种您可以用来创建高性能 Web 应用程序的缓存类型。第一种叫做输出缓存,它允许将动态页或用户控件响应存储在输出流(从发起服务器到请求浏览器)中任何具备 HTTP 1.1 缓存功能的设备上。当后面的请求发生时,不执行页或用户控件代码,缓存的输出用于满足该请求。第二种类型的缓存是传统的应用程序数据缓存,可以使用它以编程方式将任意对象(例如数据集)存储到服务器内存,这样您的应用程序可以节省重新创建这些对象所需的时间和资源。

设置页缓存的到期时间

若要将页添加到输出缓存中,您必须建立该页的到期策略。您可以使用 @ OutputCache 指令以声明方式完成该操作,或使用 HttpCachePolicy.SetExpires 方法以编程方式完成该操作。默认情况下,@ OutputCache 指令将 Cache-Control 标头设置为 Public

如果以编程方式为页设置到期时间,则您还必须为缓存的页设置 Cache-Control 标头。使用 HttpCachePolicy.SetCacheability 方法将 HttpCacheability 枚举设置为 Public

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

  • @ OutputCache 指令包含在要将其响应存储在输出缓存中的页(.aspx 文件)中。该指令必须包括一个 Duration 属性(该属性具有正数字值)和一个 VaryByParam 属性。下面的 @ OutputCache 指令将页的到期时间设置为 60 秒。
     
        
    注意   当使用 @ OutputCache 指令时,您必须包括一个 VaryByParam 属性,否则将发生分析器错误。如果不想使用 VaryByParam 属性所提供的功能,请将其值设置为 None。有关使用 VaryByParam 属性的更多信息,请参见 缓存页的多个版本

以编程方式为页设置输出缓存到期时间

  • 在页的代码声明块中或在该页的代码隐藏类中,通过使用 Response.Cache 语法将设置该页到期策略的代码包括在其中。下面的示例设置页的到期时间,如上一个过程中 @ OutputCache 指令所进行的操作。
     
        
    1 None.gif Response.Cache.SetExpires(DateTime.Now.AddSeconds( 60 ));
    2 None.gif    Response.Cache.SetCacheability(HttpCacheability.Public);
    3 None.gif    Response.Cache.SetValidUntilExpires( true );
    4 None.gif    [Visual Basic]
    5 None.gif    Response.Cache.SetExpires(DateTime.Now.AddSeconds( 60 ))
    6 None.gif    Response.Cache.SetCacheability(HttpCacheability.Public)
    7 None.gif    Response.Cache.SetValidUntilExpires(True)

转载于:https://www.cnblogs.com/kangtr/archive/2007/01/30/634725.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值