ASP.NET2.0实现依赖Oracle的缓存策略
文章作者 100test 发表时间 2007:03:14 13:46:46
来源 100Test.Com百考试题网
ASP.NET 2.0中的缓存提供了对SQL依赖项的支持,也就是说当SQL SERVER数据库中的表或行中的数据被更改后,缓存中的页面就失效,否则,页面输出可一直保留在缓存当中。这确实为程序员提供了方便。但微软一向很小家子气,只为使用自家产品SQL SERVER的程序员提供了方便,那些用Oracle数据库的ASP.NET程序员怎么办呢?
其实不用着急,因为ASP.NET 2.0中的缓存还提供了对文件依赖项的支持,也就是缓存依赖于某个文件,该文件被修改后,缓存中的页面就失效。只要巧妙利用ASP.NET 2.0的文件依赖项缓存策略和Oracle中的触发器,就可轻松实现依赖Oracle的缓存策略。思路很简单,先将页面的缓存策略设置为依赖某一个文件,再为Oracle中需要依赖的表添加一个触发器,当表中的数据被更改时,修改缓存所依赖的文件中的内容。
下面以一个小例子来具体说明:
试验目的:Default.aspx页面的缓存依赖于Oracle数据库中SCOTT用户的DEPT表,该表中数据被更改后,缓存中的页面失效。缓存的过期时间为120秒。
一、设置网站页面的缓存依赖于文件TextFile.txt
1、打开Visual Studio 2005,在E:\\CSharp\\CacheByOracleDependncy目录下新建一个WEB项目,在其Default.aspx页面上添加一个Label控件,显示页面生成的时间,以判断刷新时页面是否为重新生成的,并设置页面缓存依赖于文件E:\\CSharp\\CacheByOracleDependncy\\TextFile.txt。
protected void Page_Load(object sender, EventArgs e)
{
//显示当前时间,以便判断是否为缓存中页面
this.Label1.Text = "CacheByOracleDependency:" DateTime.Now.ToString().
//缓存依赖于文件TextFile.txt
string fileDependencyPath = Server.MapPath("TextFile.txt").
Response.AddFileDependency(fileDependencyPath).
// 设置缓存的过期时间为120秒。
Response.Cache.SetExpires(DateTime.Now.AddSeconds(120)).
Response.Cache.SetCacheability(HttpCacheability.Public).
Response.Cache.SetValidUntilExpires(true).
} |
2、在E:\\CSharp\\CacheByOracleDependncy目录下新建一个TextFile.txt文件。