Односекундный кеш позволяет избежать запроса большого числа клиентов и одновременного выполнения запроса к базе данных.
Если кеш не используется, когда большое количество запросов отправляется на сервер по адресу В то же время, это приведет к снижению производительности сервера.
И поскольку время кэширования не увеличивается, страница всегда будет получать данные sh каждую секунду.
Кэш-память с коротким временем имеет преимущества как , он может обрабатывать большие запросы одновременно, кроме того, получая данные fre sh каждую секунду.
Но, с другой стороны, кэш-память короткого времени не может долго хранить данные.
И ASP. NET MVC предоставили атрибут кэша страницы клиент / сервер, просто добавив атрибут действия (или весь контроллер) выше. Он будет кешировать все действия (или контроллер).
Пример:
namespace MvcApplication1.Controllers
{
public class HomeController : Controller
{
[OutputCache(Duration = 3)]
public ActionResult Index()
{
return View();
}
}
}
Этот код будет кешировать это действие на 3 се c и OutputCache
по умолчанию Location
равно Any
(кеш cl inet и сервер).
кеш на стороне клиента:
namespace MvcApplication1.Controllers
{
public class HomeController : Controller
{
[OutputCache(Duration = 3, Location=OutputCacheLocation.Client)]
public ActionResult Index()
{
return View();
}
}
}
кеш на стороне сервера:
namespace MvcApplication1.Controllers
{
public class HomeController : Controller
{
[OutputCache(Duration = 3, Location=OutputCacheLocation.Server)]
public ActionResult Index()
{
return View();
}
}
}
Кроме того, добавляем VaryByParam
свойство let cache может варьироваться в зависимости от параметра. В том же действии пользователь, использующий другой параметр, получит другой кеш, тот же параметр получит ту же версию кеша.
Это можно использовать для кеша, подобного странице информации о продукте.
namespace MvcApplication1.Controllers
{
public class HomeController : Controller
{
[OutputCache(Duration = 3, VaryByParam = "id")]
public ActionResult ProductDetail(int id)
{
ViewBag.detail = id;
return View();
}
}
}
OutputCache
имеет многие свойства и функции, вы можете посетить MSDN получить дополнительную информацию.