若何操纵缓存提高ASP.NET网站速度[网站编程]
本文“若何操纵缓存提高ASP.NET网站速度[网站编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
ASP.NET供应三种主要情势的缓存:页面级输出缓存、用户控件级输出缓存(或称为片段缓存)和缓存API.输出缓存和片段缓存的长处是非常易于实现,在大大都情形下,利用这两种缓存就充足了.而缓存API则供应了额外的机动性(实际上是相当大的机动性),可用于在利用程序的每一层操纵缓存.本文全面介绍了这三种缓存技术在系统各层中的利用.
在ASP.NET供应的很多特点中,缓存支持无疑是我最赏识的特点,我这样说当然是有充分来由的.相比ASP.NET的全部其他特点,缓存对利用程序的性能具有最大的潜在影响,操纵缓存和其他机制,ASP.NET开辟人员可以承受利用开销很大的控件(比方,DataGrid)构建站点时的额外开销,而没必要耽忧性能会遭到太大的影响.为了在利用程序中最大程度地操纵缓存,您应当考虑在全部程序级别上都实现缓存的办法.
Steve的缓存提醒
尽早缓存;常常缓存
您应当在利用程序的每一层都实现缓存.向数据层、业务逻辑层、UI或输出层增添缓存支持.内存目前非常便宜-因此,通过以智能的方法在整个利用程序中实现缓存,可以得到很大的性能提高.
缓存可以避免很多不对
缓存是一种无需大量时间和解析便可以得到“充足杰出的”性能的办法.这里再次夸大,内存目前非常便宜,因此,假如您能通过将输出缓存30秒,而不是花上一成天乃至一周的时间尝试优化代码或数据库便可以得到所需的性能,您必定会挑选缓存办理筹划(假定可以承受30秒的旧数据).缓存恰是那些操纵20%付出得到80%回报的特点之一,因此,要提高性能,应当首先想到缓存.不过,假如计划很糟糕,终究却有大概带来不良的后果,因此,您当然也应当尽大概精确地计划利用程序.但假如您只是需求当即得到充足高的性能,缓存就是您的最佳挑选,您可以在今后有时间的时刻再重新计划利用程序.
页面级输出缓存
作为最简单的缓存情势,输出缓存只是在内存中保存为呼应恳求而发送的HTML的副本.后来再有恳求时将供应缓存的输出,直到缓存到期,这样,性能有大概得到很大的提高(取决于需求多少开销来成立原始页面输出-发送缓存的输出老是很快,并且对比安定).
实现
要实现页面输出缓存,只要将一条OutputCache指令增添到页面便可.
<%@ OutputCache Duration="60" VaryByParam="*" %>
好像其他页面指令一样,该指令应当呈目前ASPX页面的顶部,即在任何输出之前.它支持五个属性(或参数),此中两个是必须的.
Duration 必须属性.页面应当被缓存的时间,以秒为单位.必须是正整数.
Location 指定应当对输出举行缓存的位置.假如要指定该参数,则必须是下列选项之一:Any、Client、Downstream、None、Server或ServerAndClient.
VaryByParam 必须属性.Request中变量的名称,这些变量名应当产生单独的缓存条目.“none”表示没有变更.“*”可用于为每个差别的变量数构成立新的缓存条目.变量之间用“;”举行脱离.
VaryByHeader 基于指定的标头中的变更改变缓存条目.
VaryByCustom 答应在global.asax中指定自定义变更(比方,“Browser”).
操纵必须的Duration和VaryByParam选项的组合可以处理大大都情形.比方,假如您的产品目录答应用户基于categoryID和页变量查看目录页,您可以用参数值为“categoryID;page”的VaryByParam将产品目录缓存一段时间(假如产品不是随时都在改变,一小时还是可以承受的,因此,持续时间是3600秒).这将为每个种类的每个目录页成立单独的缓存条目.每个条目从其第一个恳求算起将保持一个小时.
VaryByHeader和VaryByCustom主要用于按照拜候页面的客户端对页面的外观或内容举行自定义.同一个URL大概需求同时为浏览器和移动电话客户端显现输出,因此,需求针对差别的客户端缓存差别的内容版本.大概,页面有大概已经针对IE举行了优化,针对Netscape或Opera则应撤消这种优化功效.后一个例子非常广泛,我们将供应一个阐明若何实现此目标的示例:
示例:VaryByCustom用于支持浏览器自定义
为了使每个浏览器都具有单独的缓存条目,VaryByCustom的值可以设置为“browser”.此功效已经内置在缓存模块中,并且将针对每个浏览器名称和主要版本插入单独的页面缓存版本.
<%@ OutputCache Duration="60" VaryByParam="None" VaryByCustom="browser"%>
以上是“若何操纵缓存提高ASP.NET网站速度[网站编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |