使用起来就很简单了,可以在页面头部的OutputCache指令中设置,会社DataSource空间中进行设置,设置格式为:“数据库名:表名”.里面的表名即是需要监测是否改变的表名,示例如下:
如果需要添加多个表,则用”;”进行分割
方法二:使用通知机制(notification-based)
使用通知机制配置起来要简便很多,但是sql server的版本需要9.0以上,也就是sql server 2005,使用这种方式需要将sql server的通知服务开启。
使用通知机制可以对页面进行缓存,也可以对datasouce控件进行缓存,对页面进行缓存代码如下:
注意SqlDependency必须设置成CommandNotification。
对于datasource控件,也是同样:
ConnectionString="<%$ ConnectionStrings:AdventureWorksConnectionString %>"
SelectCommand="SELECT top 10 * FROM [Person].[Contact]" EnableCaching="true" CacheDuration="10" SqlCacheDependency="CommandNotification"></asp:SqlDataSource>
输出缓存(output Caching)
输出缓存是页面级别的缓存,是将aspx页面内容在第一次请求后生成的静态页放入缓存,在不过期时间内每一次请求时从缓存中返回静态页,而不是重新走完Asp.net的生命周期。可以将可以通过在页面头部加入OutputCache指令实现,也可以通过HttpCachePolicy类实现。
输出缓存可以缓存整个页面,也可以缓存部分页面,缓存页面的一部分是通过用户控件来实现。
下面来看通过OutputCache指令实现页面缓存:
前面已经看到,这种方式十分简单,下面说一下OutputCache的重点属性
Duration
页面过期的时间,单位为秒。超过过期时间后,则在下一次请求时页面会重新生成并缓存。
VaryByHeader
VaryByCustom
VaryByParam
VaryByControl
VaryByContentEncodings
这些属性都是为了保存页面的多个版本,比如说一个页面用于显示产品,则根据产品id的不同,缓存同一个页面的不同版本,具体的意思请看MSDN
CacheProfile
这个选项有些像连接字符串,作用只是将具体的缓存选项变成对于选项的引用,比如我们在Web.Config放入如下代码:
<outputCacheSettings>
<outputCacheProfiles>
<add name="CacheProfile"
enabled="true"
duration="60"
varyByParam="product:id"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>