У меня есть электронная коммерция, работающая в ASP.Net MVC. Я использую кеширование для повышения производительности своих страниц, и это работает.
Я бы связался, чтобы узнать, что обеспечивает лучшую производительность, например, я могу установить OutputCache в своих представлениях и использовать этот кеш для всех страниц ИЛИ Я мог бы получить свой Список продуктов в контроллере это в кеше (как в коде ниже) и отправить его в View для визуализации для пользователя?
private IEnumerable<Products> GetProductsCache(string key, ProductType type)
{
if (HttpContext.Cache[key] == null)
HttpContext.Cache.Insert(key, ProductRepository.GetProducts(type), null, DateTime.Now.AddMinutes(10), Cache.NoSlidingExpiration);
return (IEnumerable<Products>)HttpContext.Cache[key];
}
public ActionResult Index()
{
var home = new HomeViewModel()
{
Products = GetProductsCache("ProductHomeCache", ProductType.Product)
Services = GetProductsCache("ServiceHomeCache", ProductType.Service)
};
return View(home);
}
Оба варианта работают, но я хотел бы знать, какой метод предпочтительнее улучшить производительность, или есть ли другие, более эффективные способы сделать это?