我們正在建立一個MVC應用程序,那裏是當用戶第一次登錄。輸出緩存或httpcontext.current.cache我的MVC應用程序
幸運的是大部分的數據必須被裝入巨大的靜態數據在登錄時加載的是全部主數據,並且對於任何用戶都不會改變 但是由於主數據的大小很大,我們覺得最好是實現高速緩存服務器端,因爲瀏覽器可能無法容納數據
我已閱讀了微軟MVP上OutputCache
的codeproject
文章,他清楚地解釋了緩存的作用以及使用緩存時需要注意的事項。 所以我實現所有的,他在我的控制器建議僅僅通過增加線
[OutputCache(Duration = 10, VaryByParam = "none",
Location=OutputCacheLocation, NoStore=true)]
上面我ActionMethod。
但我無法調試數據是從緩存加載還是發生另一個服務器。 所以我的第一個問題是我如何調試輸出緩存是否工作?
然後,在我們以前的MVC應用程序中,我們使用了非常精細的httpcontext.current.cache
。 所以,這是我的第二個問題,這就是爲什麼我應該更喜歡OuputCache
而不是httpcontext.current.cache
,爲什麼不反之呢?
他們提供的緩存應用程序有什麼不同?
編輯:1
這是在我的登錄視圖控制器的方法,
public ActionResult GetRegions(string Ids)
{
objRegionsResult = GetRegionsList();
if (!string.IsNullOrEmpty(Ids))
objRegionsResult = objRegionsResult.Where(x => Ids.Split(',').Contains(x.Type.ToString())).ToList();
return Json(objRegionsResult, JsonRequestBehavior.AllowGet);
}
private List<MORegionMaster> GetRegionsList()
{
RequestUri = "Home/GetRegions";
HttpResponseMessage response = ConnectAPI(RequestUri);
if (response.IsSuccessStatusCode)
{
objRegionsResult = response.Content.ReadAsAsync<List<MORegionMaster>>().Result;
}
}
return objRegionsResult;
}
所以上述方法,其中i擊中API控制器,它inturn擊中businesslogic類,並隨後數據庫並返回數據表。
不,您可能會誤解我的要求。我的要求是不緩存js,css文件,我需要緩存每次用戶登錄時通過API調用獲取的主數據。但對於所有不同的用戶,主數據保持不變,所以我需要緩存數據在服務器 –
中是否要緩存業務邏輯? –
你是從API調用中獲取主數據還是在請求中的某處使用它? –