В чем разница между кэшем IIS (динамическим и статическим),OutPutCache и кэшем браузера

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

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

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

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

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

1 ответ

Решение

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?

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам