ASP.NET 2.0
版保留了
ASP.NET 1.1
版的所有缓存功能,同时添加了新功能并增强了现有功能。新功能包括缓存配置文件、自定义缓存依赖项、
SQL
缓存依赖项以及在缓存页中创建动态内容(缓存后替换)。增强功能包括功能更强大的部分页(控件)缓存模型、增强的缓存配置以及输出缓存指令的改进。
1. 新缓存功能
缓存配置文件
缓存配置文件使您能够在应用程序的
Web.config
文件中创建缓存设置,然后在单个页上引用这些设置。这使您能够将缓存设置同时应用于多页。例如,可以定义一个名为
DailyUpdate
的缓存配置文件,它将页的缓存持续时间设置为一天。然后可以配置各个页使用
DailyUpdate
缓存配置文件,并且这些页的缓存持续时间为一天。如果将
DailyUpdate
缓存配置文件更改为不使用缓存,将停止缓存这些页。
自定义缓存依赖项
在
ASP.NET 2.0
中,您可以根据应用程序特定情况创建自己的自定义缓存依赖项。若要创建自定义缓存依赖项,请创建从
CacheDependency
继承的类并在自定义类中实现您自己的依赖项方法。例如,您可以创建在
Web
服务中轮询数据的依赖项;当数据发生变化时,您可以使缓存数据无效。
SqlCacheDependency
ASP.NET 2.0
引入了
SqlCacheDependency
类,它使您能够在缓存中配置一个项,以便在
Microsoft SQL Server
数据库中的表或行上拥有依赖项。当表中或特定行中发生更改时,具有依赖项的缓存项便会失效并从缓存中移除。
ASP.NET 2.0
使您能够在
SQL Server 7.0
、
SQL Server 2000
和
SQL Server 2005
中设置表的依赖项。使用
SQL Server 2005
时,您还可以设置特定记录的依赖项。
缓存后替换
ASP.NET 2.0
现在支持缓存后替换,使您能够将页中的某一部分配置为不可缓存。因此,尽管缓存了该页,但在再次请求该页时,将重新处理它的部分内容。例如,您可以使用大多数静态内容(但不能使用在
Label
控件中显示用户名的内容)创建缓存页。如果不使用缓存后替换,用户名在所有请求中保持不变。如果使用缓存后替换,您可以将页标记为可缓存,然后将
Label
控件放置在标记为不可缓存的另一个控件中。此后每次请求该页时,都会刷新用户名。
2. 缓存增强
控件缓存
在
ASP.NET 1.1
中,通过设置
@ Control
指令中的参数以声明方式配置用户控件缓存。在
ASP.NET 2.0
中,可以在运行时使用
CachePolicy
对象配置用户控件缓存设置。
CachePolicy
对象使您能够按照以编程方式处理页输出缓存的相同方式处理用户控件缓存。
缓存配置增强
除了缓存配置文件外,
ASP.NET 2.0
中还引入了新的缓存配置设置,可以在应用程序的
Web.config
文件中指定这些设置。这些设置增加了您对缓存的控制,如内存使用量和缓存清理行为。
输出缓存指令改进
ASP.NET 2.0
包括新的
@ OutputCache
指令选项以及对现有选项的增强。新功能和增强功能使您能够对输出缓存功能进行声明控制,而以前只能使用
HttpCachePolicy
类以编程方式实现此类控制。例如,现在可以用声明方式设置页
@ OutputCache
指令中的
Duration
属性和
NoStore
属性。