it书籍aspnet缓存解决方案和最佳实践

it书籍aspnet缓存解决方案和最佳实践

ID:23359464

大小:148.68 KB

页数:17页

时间:2018-11-06

it书籍aspnet缓存解决方案和最佳实践_第1页
it书籍aspnet缓存解决方案和最佳实践_第2页
it书籍aspnet缓存解决方案和最佳实践_第3页
it书籍aspnet缓存解决方案和最佳实践_第4页
it书籍aspnet缓存解决方案和最佳实践_第5页
资源描述:

《it书籍aspnet缓存解决方案和最佳实践》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ASP.NET缓存方案和最佳实践朱荣成2010/1/20Zrc000@gmail.com1、概述在ASP.NET应用程序构建过程中,为了提高应用程序的性能,缓存处理无疑是一个非常重要的环节。通常,我们将一些频繁被访问的数据,以及一些需要大量处理时间得出来的数据缓存在内存中,从而提高性能。例如,如果程序需要处理一张报表,这张报表的数据是关联的几张数据库表,并通过大量的计算得到的数据。我们知道表关联是比较耗时的,如果关联之后得出的数据再进行聚合排序等操作的话,那速度会更慢。因此,我们把查询的报表数据缓存起来,等下次

2、用户再次请求时直接从内存中读取已经生成好的报表,这样对用户和程序无疑都是一件非常好的事情,用户减少了等待时间,程序减轻了压力。那么,何乐而不为呢,既然能让大家都开心的事情我们就去做吧。为此,ASP.NET提供了两种缓存方案。第一种是页输出缓存,它保存页处理输出,并在用户再次请求该页时,重用所保存的输出,而不是再次处理该页。第二种是应用程序缓存,它允许缓存您生成的数据,比如自定义报表对象,DataSet,DataTable等。但是有个问题就是ASP.NET为我们提供的缓存方案只能应用在单服务器中,如果我们的应用程

3、序有几台服务器做负载均衡,或者我们做分布式应用,那么,ASP.NET为我们提供的缓存解决方案发挥的作用就不大了,我们需要其他的解决方案,现在比较成熟的缓存框架有Memcached,此框架用于分布式系统中,适用于Java,ASP.NET,PHP,Ruby等语言环境构建的应用程序。那么,下面就一一阐述以上提到的缓存方案。2、页输出缓存在页输出缓存中,ASP.NET为我们提供了两种解决方案,第一种是页面级输出缓存,第二种是片段缓存(用户控件缓存)。两种方案各有各的应用场景,我们来分别阐述。2.1、页面级输出缓存页面级

4、输出缓存是比较简单的缓存形式,它是将响应请求而发送的HTML副本保存在内存中,当再有请求时直接将缓存的HTML输出给用户,直到缓存过期。这样,程序的性能会得到非常大的提升。实现具体的实现就非常简单了,只要页面顶部加一条OutputCache指令就可以了。<%@OutputCacheDuration="10"VaryByParam="none"%>它支持五个属性(Duration,VaryByParam,Location,VaryByCustom,VaryByHeader),有两个(Duration,VaryBy

5、Param)是必须的,我们也就研究这两个属性就可以了,也基本够我们日常使用。lDuration:页面应该被缓存的时间,以秒为单位。必须是正整数。lVaryByParam:Request中变量的名称,这些变量名应该产生单独的缓存条目。"none"表示没有变动。"*"可用于为每个不同的变量数组创建新的缓存条目。变量之间用";"进行分隔。lLocation:指定应该对输出进行缓存的位置。如果要指定该参数,则必须是下列选项之一:Any、Client、Downstream、None、Server或ServerAndCli

6、ent。lVaryByHeader:基于指定的标头中的变动改变缓存条目。lVaryByCustom:允许在global.asax中指定自定义变动(例如,"Browser")。示例<1>.在VisualStudio.NET新建一个web项目,并且新建一个.aspx页面<2>.删除页面的上面的默认HTML代码<3>.把下面的代码COPY到刚新建的那个页面中<%@OutputCacheDuration="10"VaryByParam="none"%>页</p><p>7、面输出缓存示例voidPage_Load(objectsender,EventArgse){this.lblTime.Text="Time:"+DateTime.Now.ToString();}页面输出缓存示例





<

8、ahref="opc.aspx?categoryid=test1">categoryid(test1)
categoryid(test1)<4>.在浏览器中浏览此页面,您会页面上面的Time会有10秒的缓存,每过10秒,Time会变化一次,这时就是Duration=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。