Кэширование в ASP.NET MVC

Параметры кэширования, доступные в приложениях ASP.NET MVC не приходят с ASP.NET MVC Framework, но из ядра ASP.NET Framework.

 

1. Запрос-Scoped Кэширование

Каждый запрос ASP.NET начинается с ASP.NET Framework создает новый экземпляр
объекта System.Web.HttpContext выступать в качестве центральной точки взаимодействия между
компонентами по всему запросу.

Одна из многих свойств HttpContext является HttpContext.Items здания, в
словаре , который живет на протяжении всего срока службы запроса и который любой компонент
может манипулировать.

например:

 

// как хранить данные в коллекции: 
        HttpContext.Items [ « IsFirstTimeUser » ] = правда ; 

        // Извлечение данных из словаря так же легко: 
        BOOL IsFirstTimeUser = ( BOOL ) HttpContext.Items [ " IsFirstTimeUser " ];


2. User-Scoped Кэширование

ASP.NET состояние сеанса позволяет хранить данные, сохраняющихся между несколькими запросами.

// хранить имя пользователя в сеансе 
HttpContext.Session [ « имя пользователя » ] = « Hrusi » ; 

// получить и отливать нетипизированное значение: 
строка имя = ( строка ) HttpContext.Session [ « имя пользователя » ];

<system.web>
  <sessionState Тайм - аут = "30" />
</system.web>

 

3. ASP.NET Cache

System.Web.Cache является ключ / значение магазина

 

4. Выход кэша

ASP.NET предоставляет возможность работать на более высоком уровне, кэширование HTML, который генерируется в результате запроса.

[OutputCache (длительность = 60 , VaryByParam = " никто " )]
 общественность ActionResult Контакт () 
{ 
    ViewBag.Message = DateTime.Now.ToString ();
    вернуться View (); 
}

 Настройка местоположения кэша

Например, вы хотите кэшировать страницу , которая отображает имя текущего пользователя. Если
использовать по умолчанию Любой параметр, имя первого лица , чтобы запросить страницу неправильно будет
отображаться для всех пользователей.


Чтобы избежать этого, настройки кэша вывода с помощью свойства Location установлен в Output
CacheLocation.Client и NoStore значение ИСТИНА , так что данные хранятся только в пользовательской
локальной веб - браузер:

[OutputCache (Длительность = 3600 , VaryByParam = " ни один " , Location = OutputCacheLocation.Client, NoStore = верно )]
 общественного ActionResult О () 
{ 
    ViewBag.Message = " Текущее имя пользователя " + User.Identity.Name;
    вернуться View (); 
}

 

 Варьируя кэш вывода на основе параметров запроса

Например, у вас есть действие контроллера с именем деталь , который отображает подробную информацию
о аукционе:

[OutputCache (Длительность = INT .MaxValue, VaryByParam = " идентификатор " )]
 общественность ActionResult Подробности ( строка ID) 
{ 
    вар аукцион = _repository.Find <Аукцион> (идентификатор);
    вернуться View ( " Подробности " , аукцион); 
}

 

 

Воспроизводится в: https: //www.cnblogs.com/davidgu/p/3331699.html

рекомендация

отblog.csdn.net/weixin_33937913/article/details/93802893
рекомендация