2015-01-27 12 views
1

В ASP.Net MVC у нас есть кэш вывода страниц. мы делаем это, добавляя атрибут [OutputCache]Влияние отключение кеширования HTTP или кэша вывода страницы в MVC

Тогда есть HTTP-кеширование, которое используется браузером. Надеюсь, я прав до этого. Использование HTTP-заголовков мы можем включить или отключить это кеширование HTTP.

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

ответ

3

Output caching рассказывает сервера провести вынесенного результат страницы (в виде строки) в памяти сервера - готова для следующего запроса. Это означает, что (например) любые запросы к базе данных или файлам, необходимые для заполнения данных для страницы, не должны выполняться для дальнейших запросов, пока кеш остается в силе, а также (небольшие) накладные расходы на создание представления и любых компонентов или обертоны. HTTP-кеширование сообщает клиенту и/или нисходящим прокси-серверам, что содержимое останется действительным в течение указанного периода - и его можно обслуживать из локального или прокси-кеша без необходимости повторной заявки.

Следует отметить, что дочерние действия могут применяться OutputCache, что позволяет вам кэшировать части страницы, которые не меняются между пользователями, в то же время позволяя индивидуальную настройку каждой страницы на всех пользователях. Это иногда называют «Кэширование дыры» (где «дыра» не изменяется, а остальная часть «пончика» вокруг нее).

Существует еще одна концепция «кэширования пончиков», где большая часть страницы кэшируется небольшой частью (отверстие), но это еще не поддерживается из коробки в ASP.NET MVC.

OutputCacheAttribute позволяет указать «местоположение» - клиент, нисходящий сервер, сервер и клиент - что позволяет удобному методу указать кэширование вывода клиента и сервера в одном месте, но каждый из них может управляться независимо.

+0

Спасибо за отличное объяснение –