Как я могу гарантировать, что последняя версия моего кода JavaScript загружена для клиента? - PullRequest
4 голосов
/ 13 декабря 2011

У нас есть клиент с тысячами пользователей (которые все используют Internet Explorer) и большое количество файлов javascript, которые улучшают их взаимодействие с нашим продуктом.

Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда мы обновляем один из этих сценариев , невозможно узнать, видит ли клиент последнюю версию . Что нам нужно сделать, это сказать нашему клиенту сделать полное обновление (ctrl + f5) перед просмотром любых изменений. Очевидно, что этот подход не идеален.

Я знаю, что браузеры кешируют на основе URL, поэтому можно использовать что-то вроде

<script src='myScript.js?ver=1.2'>

чтобы обойти проблему, но это не вариант для нас.

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

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 13 декабря 2011

Вы также можете создать версию самого файла, как это делает jQuery:

<script src='myScript-v1-2.js'>

Затем, каждый раз, когда вы пересматриваете скрипт, вы увеличиваете номер версии и изменяете страницы, которые включают его, чтобы указать имя нового скрипта. Это надежная защита по сравнению с кэшированием, но все же позволяет вашим зрителям получать максимальную выгоду от кэширования и не требует никаких изменений конфигурации сервера для файла .js.

Полное решение, как правило, включает установку относительно короткого времени жизни кэша для вашей веб-страницы хоста, а затем позволяет различным ресурсам (файлам таблиц стилей, файлам JS, изображениям и т. Д.) Иметь более длительное время жизни кэша для максимального кэширования. Все, что отпечатано, может иметь очень длительное время жизни кеша. См. ссылку , которую fabianhjr опубликовал о способах установки времени жизни кэша веб-страницы хоста. Это можно сделать на самой веб-странице (настройки <meta>) или в заголовках http через сервер.

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

2 голосов
/ 13 декабря 2011

Все, что вам нужно знать о кеше http://www.mnot.net/cache_docs/

http://www.mnot.net/cache_docs/#CACHE-CONTROL <- HTTP-заголовки </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...