本文實例介紹了清除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(); }
新聞熱點
疑難解答