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


10

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

Ответы:


8

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

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


Спасибо за помощь. Пожалуйста, прости мое невежество в этой области ... Я запутался между клиентом и 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>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.