В чем разница между кэшем IIS (динамическим и статическим), OutPutCache и кэшем браузера - PullRequest
8 голосов
/ 12 марта 2012

В чем разница между IIS (Dynamic and Static) кешем, OutPutCache и browser cache?

Я думаю, что запутался в них.

Кэширует ли браузер все файлы js или css?

Что произойдет, если я использую IIS кеширование и не использую OutputCache?

Что произойдет, если я использую оба?

1 Ответ

12 голосов
/ 12 марта 2012

OutPutCache - это кэш страницы / элемента управления, сохраненный на сервере для увеличения скорости обработки при визуализации этой страницы / элемента управления.

browser cache - это команды заголовка, которые вы задаете на странице и даетеинструкция для браузера клиента: сохранить страницу в кэше клиентского компьютера на некоторое время и не читать ее с сервера.

static cache - это когда вы устанавливаете кэш для контента, общего для всех пользователей,и Dynamic cache, если при настройке кеша отличается для той же страницы и зависит от пользователя или других параметров.Также вы можете сказать, что static - это содержимое, которое не изменяется (например, изображения, html-страницы и т. Д.), А dynamic - это кэш для содержимого, которое изменяется, например aspx-страниц.

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

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

Кеширует ли браузер все файлы js или css?

Браузер делает только то, что вы говорите ему делать.Таким образом, вам нужно установить в заголовках страниц браузер, как долго вы хотите, чтобы браузер сохранял эти файлы в клиентском кэше.Если вы ничего не установили, то IIS установил статический контент, такой как Js и Css, а также изображения, дату создания файла, и это может быть использовано браузером для запроса сервера, нужно ли ему снова его читать или нет.

Статический и динамический

Еще одна информация о статическом и динамическом кеше заключается в том, что браузер в динамическом кеше спрашивает сервер, нужно ли ему обновляться, и если ответ «да», то снова прочитайте страницу.Таким образом, браузер всегда вызывает сервер, но не всегда возвращает содержимое.

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

Вы можете установить этот статический кэш содержимого в web.config

<staticContent>
    <clientCache cacheControlMaxAge ="8.00:00:00" cacheControlMode="UseMaxAge" />
</staticContent>

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

Некоторые примеры: Создание фильтра ETag в ASP.NET MVC

http://jagbarcelo.blogspot.com/2009/03/conditional-get-and-etag-implementation.html

Создание etags для изображений в asp.net?

 if I use both IIS cache and OutputCache?

На самом деле это две разные мысли, которые действуют сами по себе.Давайте посмотрим некоторые шаги, которые происходят.

Client A Browser : Пожалуйста, дайте мне страницу default.aspx

Ответ сервера : Хорошо, подождите немного,Посмотрим, есть ли у меня это на OutpuCache?Нет, я делаю это сейчас и сохраняю в OutPutCache.Теперь я отправляю это вам.(waiting time 600 ms + 70ms Network Lag) + 2000ms to download the mage

Клиент B Browser : Пожалуйста, дайте мне страницу default.aspx

Ответ сервера : Хорошо, подождите немного.Посмотрим, есть ли у меня это на OutpuCache?Да, я читаю это из кеша и отправляю.`(время ожидания 100 мс + сетевое отставание 70 мс) + 2000 мс для загрузки мага

Client A Browser : Пожалуйста, дайте мне страницу default.aspx, мой последний кеш говорит, что в файле есть дата: 12 марта 2012 г.

Ответ сервера : хмм Вам не нужно перечитывать его, потому что он не изменен, используйте локальный кеш.(waiting time 80 ms + 70ms Network Lag) + 0ms to download the page

Когда страница обнаружена в OutputCache Эффект для пользователя заключается в том, что он не ждет, пока страница не начнет так много показывать.

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

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

...