我们正在建立一个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调用中获取主数据还是在请求中的某处使用它? –