用户控件的输出缓存的设置的编程访问主要通过 CachePolicy 属性,该属性获取对该用户控件的缓存参数集合的引用,该参数集合封装为一个 ControlCachePolicy 类。该类提供对 ASP.NET 用户控件的输出缓存的设置的编程访问。要使用 CachePolicy 属性,用户控件必需启用输出缓存,常用启用输出缓存的方法有两种,一是在用户控件中使用 @ OutputCache 指令来启用输出缓存,如:
<%@ OutputCache Duration="100" VaryByParam="none" %>
二是将用户控件嵌入在 PartialCachingControl 实例中,如:
PartialCachingControl pcc = LoadControl("SimpleControl.ascx") as PartialCachingControl;
Controls.Add(pcc);
下面主要说说利用 ControlCachePolicy.Dependency 属性来控制缓存数据过期的问题。
假如一个页面的内容是从数据库读出的,页面在缓存的时间为 100 秒,若数据库表在 100 秒发生的变将不会立即反应到页面上的,100 秒刷新到的数据都是旧的数据,而不是数据库最新的数据,这在一般的应用没有多大的影响,但在一些要求数据比较实时的情况下,是不允许的。然而我们可以通过输出缓存类 ControlCachePolicy 的 Dependency 属性,设置一个缓存依赖项,来监视数据库表的变化,从而使数据表的变化和缓存中的数据达到一致。Dependency 属性是一个 CacheDependency 类实例,CacheDependency 类监视依附性关系,以便在任何这些对象(依赖项)更改时,该缓存项都会自动移除。(未完待续……)