首页 > 编程 > .NET > 正文

充分利用ASP.NET的三种缓存提高站点性能的注意方法

2024-07-10 12:40:03
字体:
来源:转载
供稿:网友
ASP.NET提供三种主要形式的缓存:页面级输出缓存、用户控件级输出缓存(或称为片段缓存)和缓存API。

尽早缓存;经常缓存 
  您应该在应用程序的每一层都实现缓存。向数据层、业务逻辑层、UI或输出层添加缓存支持。内存现在非常便宜-因此,通过以智能的方式在整个应用程序中实现缓存,可以获得很大的性能提高。

页面级输出缓存

最简单的缓存形式,只是在内存中保留为响应请求而发送的HTML的副本。
要实现页面输出缓存,只要将一条OutputCache指令添加到页面即可。

<%@ OutputCache Duration="60" VaryByParam="*" %> 

  它支持五个属性(或参数),其中两个是必需的。

  Duration 必需属性。页面应该被缓存的时间,以秒为单位。必须是正整数。 

  Location 缓存的位置。参数:Any、Client、Downstream、None、Server或ServerAndClient。

  VaryByParam 必需属性。Request中变量的名称。none表示没有变动。*用于为每个不同的变量创建缓存。
        变量之间用“;”进行分隔。

  VaryByHeader 基于指定的标头中的变动改变缓存条目。

  VaryByCustom 允许在global.asax中指定自定义变动(例如,“Browser”)。

  利用必需的Duration和VaryByParam选项的组合可以处理大多数情况。例如,如果您的产品目录允许用户基于categoryID和页变量查看目录页,您可以用参数值为“categoryID;page”的VaryByParam将产品目录缓存一段时间(如果产品不是随时都在改变,一小时还是可以接受的,因此,持续时间是3600秒)。这将为每个种类的每个目录页创建单独的缓存条目。每个条目从其第一个请求算起将维持一个小时。

  示例:VaryByCustom用于支持浏览器自定义

  为了使每个浏览器都具有单独的缓存条目,VaryByCustom的值可以设置为“browser”。此功能已经内置在缓存模块中,并且将针对每个浏览器名称和主要版本插入单独的页面缓存版本。

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



片段缓存,用户控件输出缓存

  片段缓存使用的语法与页面级输出缓存一样,但其应用于用户控件(.ascx文件)而不是Web窗体。

       用户控件还支持名为VaryByControl的属性,该属性将根据.ascx文件中的服务器控件的值改变该控件的缓存。如果指定了VaryByControl,可以省略VaryByParam。如果所有页面都使用相同的用户控件,则可以设置参数Shared的值为“true”。

<%@ OutputCache Duration="60" VaryByParam="*" %> 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表