清除aspx页面缓存的程序实现方法
程序员文章站
2023-12-17 22:11:16
本文实例介绍了清除aspx页面缓存的程序实现方法,具体步骤如下:
所有用到页面缓存的aspx页面修改以下cs,让它继承一个自定义基类(例如:pagecachebase);...
本文实例介绍了清除aspx页面缓存的程序实现方法,具体步骤如下:
所有用到页面缓存的aspx页面修改以下cs,让它继承一个自定义基类(例如:pagecachebase);
pagecachebase 的 page_load
加入以下代码:
string cachekey = request.url.tostring(); cache[cachekey] = new object(); response.addcacheitemdependency(cachekey);
这样就能在应用程序(整个网站)cache里遍历缓存项(包括这些aspx页面的缓存依赖项)了,我把他们绑定到datagrid:
private void bindcache() { datatable dt = new datatable(); dt.columns.add("cachename",typeof(string)); dt.columns.add("cachetype",typeof(string)); idictionaryenumerator cacheenum = httpruntime.cache.getenumerator(); while (cacheenum.movenext()) { datarow dr = dt.newrow(); dr["cachename"] = cacheenum.key; dr["cachetype"] = cacheenum.value.gettype(); dt.rows.add(dr); } dataview dv = dt.defaultview; dv.sort = "cachename"; this.datagrid1.datasource =dt; this.datagrid1.databind(); }
删除就简单了,实现代码如下:
string cachekey = e.item.cells[0].text; if(cache[cachekey]!=null) { cache.remove(cachekey); bindcache(); }