ASP.NET2.0提供了一些新的用于提升程序性能的技术特性,其中,缓存技术是非常重要的一个特性,它提供了一种非常好的本地数据缓存机制,从而有效的提高数据访问的性能。
数据缓存(DataCaching)就是将数据暂存于内存缓存区中(有时也暂存于硬盘缓存区中)的一种技术.当数据本身改变得不怎么频繁,而被访问的频率又比较高时,采用这种技术将大大提高警惕数据访问的效率.
1.网页输出缓存
(1)加显缓存
<%@OutputCacheDuration="60"VaryByParam=none%>
语句<%@%>是网页配置的指令,在这里用来给网页指定缓存参数.其中:Duration="60"代表缓存持续时间为60秒,VaryByParam属性用来指定特定版本的网页输出,因哪个参数而改变.在<%@OutputCache%>配置指令中一定要加入VaryByParam属性.即使不使用这个版本属性,也要将它加入,但将其值设为none.
(2)回调缓存
<%@OutputCacheDuration=60VaryByParam=stata%>
根据lll.aspx?stata=的内容分别缓存
下面的方法可以根据内容刷新
代码如下:
<scriptrunat="server">
SharedFunctionGetCurrentDate(ByValcontextAsHttpContext)AsString
ReturnNow.ToString()
EndFunction
</script>
<asp:SubstitutionID="Substitution1"runat="server"MethodName="GetCurrentDate"/>
2.数据库缓存
在ASP.NET2.0中可以通过数据源设置数据表的缓存参数.在SqlDataSource控件的属性中有几项用于设置缓存的参数.
CacheDuration:代表缓存的持续时间.默认为Infinite(无限)
CacheExpirationPolicy:缓存的策略.包括两种设置:Absolute和Sliding.当设置成前者时,时限一到缓存区失效;当设置为后者时,时限到立即刷新缓存区中的数据,并继续缓存更新后的数据.
CacheKeyDependency:可以用于SQLServer2005数据库.
EnableCaching:默认时为False,即不使用数据缓存,将该属性改为True时即可启动数据缓存.
SqlCacheDependecy:缓存依赖关系.例如设置为pubs:authors表示数据库Pubs中的authors数据表与它的数据缓存之间建立依赖关系.
有时数据表太大,缓存区可能会占用太大的内存空间.可以将数据缓存到硬盘的缓存区中,为了实现这一点,需要做一些专门的设置.设置包括两方面.
一:在网页中配置<%@OutputCacheDuration="3600"VaryByParam="none"DiskCacheable="true"%>
二:在Web.config文件中指定硬盘缓区区的大小,配置的语句如下:
代码如下:
<system.web>
<caching>
<outputCache>
<diskCacheEnabled="true"maxSizePerApp="2"/>
</outputCache>
</caching>
</system.web>
其中diskCacheEnabled="true"用来启动硬盘缓存功能;maxSizePerApp="2"用来确定缓存区的容量,这里确定的缓存区最大容量为2M.同于对硬盘的存取速度比较慢,因此硬盘缓存只适用于缓存持续时间较长的情况(本例中缓存时间为1小时).