[英]Caching in asp.net for dynamic data in gridview
我有一個帶有GridView
的網頁,該網頁是從數據庫表中填充的。 用戶可以單擊列名,該列名提供了不同值的選項,用戶可以通過它們選擇過濾器。就像在Excel
具有AutoFilter
選項一樣。 它基於用戶篩選器選擇構建動態查詢並填充Gridview。
我必須對此網頁使用Caching
機制,因為數據每天都會更改一次。
當我選擇第一次填充的過濾器時,我嘗試使用<%@ OutputCache Duration=3600 VaryByParam="None" %>
。 但是,當我選擇進行進一步的過濾時,IE會顯示錯誤消息“ Internet Explorer無法顯示該網頁”
由於查詢是動態的,因此我不確定此網頁的緩存是否可行。 請讓我知道,還有其他機制可以實現此目的或增強網站性能。
在這種情況下,輸出緩存不是您想要的,它緩存頁面的HTML輸出,因此ASP.NET不必重新生成它。
聽起來您正在尋找內置的Cache類,該類可以在給定的時間內保存任意對象。
根據查詢的速度,您可以緩存整個數據集,然后使用LINQ對其進行過濾,也可以存儲從SQL Server獲得的過濾后的版本。
我用這樣的東西:
var cachedList = HttpContext.Current.Cache["cacheKey"];
if (cachedList == null)
{
var db = new YourDataContext();
//get your data from the db here somehow
cachedList = db.table
.Where(x => true)
.ToList();
HttpContext.Current.Cache.Add(
"cacheKey",
cachedList,
null,
DateTime.Now.AddMinutes(10),
System.Web.Caching.Cache.NoSlidingExpiration,
CacheItemPriority.Normal,
null);
}
return (List<YourDataType>)cachedList;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.