Будет ли сброс IIS принудительно повторно отправлять кэшированные элементы?

10

Я пытаюсь разработать стратегию обработки кэшированных файлов JavaScript, CSS, изображений и т. Д., Когда мы выпускаем обновление для нашего сайта. Прежде чем приступить к реализации номеров версий в файлах javascript, мне было интересно, приведет ли сброс IIS после каждого выпуска к эффективному повторному отправлению кэшированных файлов.

DaveK
источник

Ответы:

8

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

IISReset (хотя и грубый) очистит кэш IIS, но ничего не сделает с локальными кешами в прокси или клиентах. Может быть, вы только что немного перепутали терминологию, но нет никакого понятия «возмущаться», когда дело доходит до кеширования. Это все на основе запросов. Если клиент запрашивает что-то, и он обнаруживается в кеше, он будет обслуживаться из кеша. Вам нужно будет принудительно установить срок действия содержимого ваших файлов, если вы будете поддерживать те же имена файлов.

squillman
источник
Спасибо за помощь. Пожалуйста, прости мое невежество в этой области ... Я запутался между клиентом и IIS-кешем. Термин «повторно отправленный» должен был относиться к серверу, отправляющему контент, а не извлекаемый из кеша клиента.
DaveK
@ Не волнуйтесь, рад, что это помогло! Один дополнительный бит, если файл находится в клиентском кеше или в прокси-кэше восходящего потока, тогда сервер даже не получит запрос, если не будет устаревший кешированный элемент и не будет доступна более новая версия с сервера.
squillman
3

Нет, кэширование клиента основано на времени истечения срока действия контента.

Джим Б
источник
3

Когда вы изменяете один файл javascript, вам нужны ВСЕ клиенты, на которых запущено веб-приложение, чтобы получить новый файл, для меня это «недавний».

Чтобы каждый клиент получил с сервера новый файл, вам нужно всего лишь включить его в сценарий include / script вашего javascript на веб-странице "?version=1".

Нужен только один параметр, который может быть, ?blue=helloили ?v=1234155как вы хотите. Важность состоит в том, чтобы использовать разные значения каждый раз, когда вы меняете JavaScript. "?version=1"для первого изменения, "?version=2"для второго изменения, практично и однозначно знать следующее значение. Также вы можете использовать GUID, если хотите: "?version=4747b320-62ce-11cf-a5d6-28db04c10777"или вы можете использовать дату и время "?version=20130220175025"для 2013/02/20 17:50:25.

Пример № 1

<script type="text/javascript" src="http//..../jquery/1.7.1/jquery.min.js?version=1"></script>

Пример № 2

<script type="text/javascript" src="http//..../jquery/1.7.1/jquery.min.js?k=4747b320-62ce-11cf-a5d6-28db04c10777"></script>
Эдвард Лопес Гарбанзо
источник