当前位置 : 主页 > 网络编程 > ASP >

玩玩asp.net 2.0的caching系列二 - RemoveOutputCacheItem

来源:互联网 收集:自由互联 发布时间:2021-06-24
玩玩asp.net 2.0的caching系列二 - RemoveOutputCacheItem 在asp时代,要作cache通常是用application来存数据, 要完整一点的.就是自己写个class来操作application控制要cache的数据. 但是在asp.net,页面要cache变

玩玩asp.net 2.0的caching系列二 - RemoveOutputCacheItem


在asp时代,要作cache通常是用application来存数据,
要完整一点的.就是自己写个class来操作application控制要cache的数据.

但是在asp.net,页面要cache变得简单许多.
只要一行

<%@ OutputCache Duration="60" VaryByParam="None" %>

就可以了,
但是,现在问题又来了,
客户希望后台新增完后他要立即可以从前台看到更新的数据.
先前在网络上看到是有说只要页面有修改outputcache就会被清除.
但是...这是在测试时候的方式,
在production环境的页面应该是不能让客户每次更新完就去动一下页面.
要解决这问题,
可以使用HttpResponse.RemoveOutputCacheItem
用法如下 :

HttpResponse.RemoveOutputCacheItem("/default.aspx");

假设你的default.aspx有设定了outputcache,那你可以新增一个管理cache的页面.
在那个页面上有个按钮,点下后调用上面的程序.
而RemoveOutputCacheItem所带的参数就是你的页面的绝对路径(不能使用"../"这种相对路径).

测试网址:

OutputCache页面 : http://vip.blueshop.com.tw/ajun/cachetest.aspx
Cache管理页面 : http://vip.blueshop.com.tw/ajun/cachemanager.aspx

outputCache页面在上一篇介绍过了,而管理的页面中有两个功能,
remove cache才是这次的测试范例.

只要确定网址正确,按下remove cache后,该页面的outputcache就会被清除,
再次浏览outputcache的页面后就会是被更新后的数据了.

问题到这大致上已经ok了,
但是...还是有点状况,
因为后台维护的数据是最新消息,
而除了首页外,还有其他的页面也都会显示最新消息,
所以如果要用RemoveOutputCacheItem一笔一笔清除cache似乎有点麻烦,
所以下一篇将会是说明怎么处理这样的问题.
ps.范例中有这个的程序,如果等不及想要知道解决方案的话,可以直接看code.

范例下载:
http://ajunlee.googlepages.com/CacheTest.rar

原文:大专栏  玩玩asp.net 2.0的caching系列二 - RemoveOutputCacheItem

网友评论