清除aspx页面缓存的程序实现方法
本文实例介绍了清除aspx页面缓存的程序实现方法,具体步骤如下:
所有用到页面缓存的aspx页面修改以下cs,让它继承一个自定义基类(例如:PageCacheBase);
PageCacheBase的Page_Load
加入以下代码:
stringcacheKey=Request.Url.ToString(); Cache[cacheKey]=newobject(); Response.AddCacheItemDependency(cacheKey);
这样就能在应用程序(整个网站)Cache里遍历缓存项(包括这些aspx页面的缓存依赖项)了,我把他们绑定到DataGrid:
privatevoidbindCache() { DataTabledt=newDataTable(); dt.Columns.Add("CacheName",typeof(string)); dt.Columns.Add("CacheType",typeof(string)); IDictionaryEnumeratorCacheEnum= HttpRuntime.Cache.GetEnumerator(); while(CacheEnum.MoveNext()) { DataRowdr=dt.NewRow(); dr["CacheName"]=CacheEnum.Key; dr["CacheType"]=CacheEnum.Value.GetType(); dt.Rows.Add(dr); } DataViewdv=dt.DefaultView; dv.Sort="CacheName"; this.DataGrid1.DataSource=dt; this.DataGrid1.DataBind(); }
删除就简单了,实现代码如下:
stringcacheKey=e.Item.Cells[0].Text; if(Cache[cacheKey]!=null) { Cache.Remove(cacheKey); bindCache(); }