Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Эффективное использование кэширования



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

Кэширование вывода позволяет кэшировать контент, возвращаемый действием контроллера. Это означает, что при вызове одного и того же действия контроллера не потребуется повторно создавать контент.

Например, приложение ASP.NET MVC выводит список записей базы данных в представлении Index. Как правило, при каждом вызове пользователем действия контроллера, которое возвращает представление Index, потребуется извлекать набор записей из базы данных путем выполнения запроса к базе данных.

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

Включение кэширования вывода

Чтобы включить кэширование вывода, необходимо добавить атрибут [OutputCache] к отдельному действию контроллера или ко всему классу контроллера. Например, в контроллере, показанном в примере кода 1, определено действие Index().

В бета-версиях ASP.NET MVC кэширование вывода не поддерживается для URL-адресов вида http://www.MySite.com/. Вместо URL-адресов этого вида необходимо использовать URL-адреса вида http://www.MySite.com/Home/Index.

В примере кода 1 выходные данные действия Index() кэшируются в течение 10 секунд. При необходимости можно указать более продолжительный период кэширования. Например, если требуется кэшировать выходные данные действия контроллера в течение суток, необходимо указать период кэширования равный 86 400 секундам (60 секунд * 60 минут * 24 часа).

Однако это не гарантирует, что контент будет кэшироваться в течение указанного периода времени. Если ресурсов памяти недостаточно, кэш автоматически удаляет контент.

Контроллер Home в примере кода 1 возвращает представление Index в примере кода 2. Это представление реализовано достаточно стандартно. Представление Index просто отображает текущее время (см. рис. 1).

Если действие Index() вызывается несколько раз путем ввода URL-адреса /Home/Index в адресной строке браузера и путем многократного нажатия кнопки «Обновить» или «Перезагрузить» в браузере, время, отображаемое представлением Index, не будет изменяться в течение 10 секунд. Поскольку представление кэшировано, будет отображаться одно и то же время.

Следует отметить, что для всех посетителей веб-страницы кэшируется одно и то же представление. Любой пользователь, вызывающий действие Index(), получит такую же кэшированную версию представления Index, что и другие пользователи. Это означает, что объем работы, выполняемый веб-сервером по обслуживанию представления Index, существенно сокращается.

Представление в примере кода 2 выполняет действительно очень простое действие. Оно просто отображает текущее время. Однако этот способ можно использовать для кэширования представления, которое отображает набор записей базы данных. В этом случае не потребуется извлекать набор записей из базы данных при каждом вызове действия контроллера, которое возвращает представление. Кэширование позволяет снизить нагрузку на веб-сервер и сервер баз данных.

В представлении MVC не рекомендуется использовать директиву страницы <%@ OutputCache %>. Эта директива относится к веб-формам и не должна использоваться в приложении ASP.NET MVC.





Дата публикования: 2015-02-03; Прочитано: 236 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...