ASP.NET 缓存(四)--使用缓存键依赖项缓存页输出http://www.opent.cn/?action=show&id=191
2008-01-15 17:04
981 查看
当将页添加到输出缓存后,在超过了您在到期策略中指定的时间量之后,该页将被移除。有些时候,您要在到期之前从输出缓存中移除某个页或页的版本。例如,如果页显示易失数据(例如股票价格或温度),如果在该页到期之前数据已被更新,则该页将显示不正确的信息。
要解决该问题,ASP.NET 提供了 HttpResponse.AddCacheItemDependency 和 HttpResponse.AddCacheItemDependencies 方法,这些方法允许您缓存依赖于 Cache 对象(与该页所属的应用程序关联)中一项的页输出。
注意 通过调用 HttpResponse.RemoveOutputCacheItem 方法,可以从输出缓存中显式移除任何页。可以从 global.asax 文件,从已创建的自定义 ASP.NET 服务器控件或从页中执行该操作,具体取决于应用程序的需要。
AddCacheItemDependency 方法允许您在页和 Cache 中的单个项之间创建关系,而 AddCacheItemDependencies 方法允许您在页和 Cache 项的数组之间创建关系。当该页依赖的任何项更改或从应用程序 Cache 中移除时,都将使页输出无效并将其从输出缓存中移除。
注意 不能从 Web 窗体用户控件使用这些方法。
使缓存的页输出依赖于 Cache 项
以声明方式或编程方式指定缓存页输出的设置。有关更多信息,请参见设置页缓存的到期时间、设置页的可缓存性和缓存页的多个版本。
在页的代码声明块或代码隐藏文件中,使用 Cache.Item 属性、Cache.Add 方法或 Cache.Insert 方法将项添加到 Web 应用程序的 Cache 对象中。
在页的代码声明块或代码隐藏文件中,使用 Response 对象语法调用 AddCacheItemDependency 或 AddCacheItemDependencies 方法,指定该页所依赖的缓存项。 警告 若要使用这些方法,传递给它的参数必须是为 Cache.Item 属性、Cache.Add 方法或 Cache.Insert 方法中指定的缓存项所指定的缓存键。
下面的示例假定应用程序包含一个温度组件。该组件使用 Cache.Insert 方法将温度放置在应用程序 Cache 中。
之后,下面的页代码(在代码声明块或代码隐藏文件中)获取存储在 Cache 中的当前温度,将其转换为字符串,然后显示它。然后,它使其输出缓存版本依赖于
要解决该问题,ASP.NET 提供了 HttpResponse.AddCacheItemDependency 和 HttpResponse.AddCacheItemDependencies 方法,这些方法允许您缓存依赖于 Cache 对象(与该页所属的应用程序关联)中一项的页输出。
注意 通过调用 HttpResponse.RemoveOutputCacheItem 方法,可以从输出缓存中显式移除任何页。可以从 global.asax 文件,从已创建的自定义 ASP.NET 服务器控件或从页中执行该操作,具体取决于应用程序的需要。
AddCacheItemDependency 方法允许您在页和 Cache 中的单个项之间创建关系,而 AddCacheItemDependencies 方法允许您在页和 Cache 项的数组之间创建关系。当该页依赖的任何项更改或从应用程序 Cache 中移除时,都将使页输出无效并将其从输出缓存中移除。
注意 不能从 Web 窗体用户控件使用这些方法。
使缓存的页输出依赖于 Cache 项
以声明方式或编程方式指定缓存页输出的设置。有关更多信息,请参见设置页缓存的到期时间、设置页的可缓存性和缓存页的多个版本。
在页的代码声明块或代码隐藏文件中,使用 Cache.Item 属性、Cache.Add 方法或 Cache.Insert 方法将项添加到 Web 应用程序的 Cache 对象中。
在页的代码声明块或代码隐藏文件中,使用 Response 对象语法调用 AddCacheItemDependency 或 AddCacheItemDependencies 方法,指定该页所依赖的缓存项。 警告 若要使用这些方法,传递给它的参数必须是为 Cache.Item 属性、Cache.Add 方法或 Cache.Insert 方法中指定的缓存项所指定的缓存键。
下面的示例假定应用程序包含一个温度组件。该组件使用 Cache.Insert 方法将温度放置在应用程序 Cache 中。
[C#] Cache.Insert("Temperature.CurrentTemperature", currentTemperature); [Visual Basic] Cache.Insert("Temperature.CurrentTemperature", currentTemperature)
之后,下面的页代码(在代码声明块或代码隐藏文件中)获取存储在 Cache 中的当前温度,将其转换为字符串,然后显示它。然后,它使其输出缓存版本依赖于
Temperature.CurrentTemperature键。从这时起,当温度组件更新温度时,便在输出缓存中刷新页版本。当随后请求该页时,该页将被重新放置在输出缓存中。
[C#] int temperature = (int) Cache.Get("Temperature.CurrentTemperature"); LabelTemperature.Text = temperature.ToString(); Response.AddCacheItemDependency("Temperature.CurrentTemperature"); [Visual Basic] Dim temperature as Integer temperature = Cache.Get("Temperature.CurrentTemperature") LabelTemperature.Text = temperature.ToString() Response.AddCacheItemDependency("Temperature.CurrentTemperature")
相关文章推荐
- ASP.NET 缓存(五)--使用文件依赖项缓存页输出http://www.opent.cn/?action=show&id=192
- ASP.NET 缓存(七)--根据参数缓存页的版本http://www.opent.cn/?action=show&id=194
- MFC 弹出窗口MessageBox的使用[转自http://www.bigasp.com.cn/blog/?action=show&id=51]
- VS .NET 2005中水晶报表的使用 http://www.tianyablog.com/blogger/post_show.asp?BlogID=116800&PostID=9731765
- 因ARP欺骗网站源文件被注入了代码http://www.cnbruce.com/blog/showlog.asp?cat_id=32&log_id=1191
- 转:小结一下团队协作中的开源应用 转自:http://www.lingang.gd.cn/?action=show&id=329
- 解决ASP(图像)上传漏洞的方法http://www.cnbruce.com/blog/showlog.asp?cat_id=26&log_id=942
- 做了个非常简单的Flash验证码(附源代码) 转载于http://www.cordyblog.cn/?action=show&id=68
- 踏入社会(http://www.sysinfo.cn/index.php?action=show&id=90)
- [转]ASP.NET 缓存(四)--使用缓存键依赖项缓存页输出
- http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=10594&courseid=4
- 明基成人礼:巅峰战将营 http://www.cnvn.com.cn/Article/ShowArticle.asp?ArticleID=3172
- 【转载】【权限控制】角色访问动态生成用户权限菜单树(转载: http://www.comprg.com.cn/post_show.asp?id=7873 )
- http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=10102&courseid=0
- 不完全HTML在线编辑器收集 http://www.cnbruce.com/blog/showlog.asp?log_id=1021
- 女人:换一个爱情姿势好吗 转自 http://groups.tianya.cn/bulo/ShowArticle.asp?buloid=237&ArticleID=413747&idWriter=15308611&key=59653
- ASP.NET中使用Server.Transfer()方法在页间传值 http://www.jaron.cn/chs_scripts/9/2004-09/101590.shtml
- HTML在线编辑器的原理(转载整理)http://www.cnbruce.com/blog/showlog.asp?log_id=1168
- 将cooledit作为一个音频信号发生器(http://www.zsjys.net/JYJY/ShowArticle.asp?ArticleID=64)
- windows进程中的内存结构http://www.ieee.org.cn/dispbbs.asp?boardID=63&ID=39490