ie8 Javascript Cache Проблема с инфраструктурой YUI - PullRequest
0 голосов
/ 22 августа 2011

У меня запущено приложение, которое использует фреймворк YUI js (v3.0). Пользователь может нажать кнопку в моем приложении, которая обновит их до последней версии фреймворка (3.4). Проблема в том, что на ie8 я получаю некоторые странные ошибки JavaScript. После отладки кажется, что старая версия (3.0) файла loader-min.js извлекается из кэша браузера, так как он все еще используется объектом YUI при его создании. Поэтому во время моего обновления я создаю узел сценария, добавляю местоположение в новый файл загрузчика (3.4), а затем вставляю его в раздел head. Думаю, мы все знакомы с этой техникой. Однако когда пользователь переходит на следующую страницу, загруженный файл теряется, а старая версия (3.0) по-прежнему остается в кэше. Убедитесь в этом, используя инструменты разработчика и просмотрев все файлы javascript, загруженные приложением.

Я пробовал много разных вещей, чтобы получить новую версию (3.4) Я загружаю, чтобы переопределить версию, которая в данный момент находится в кеше, что исправит проблемы с javascript. Я попытался добавить уникальную строку в конец имени загружаемого файла, как правило, это то, как js-файлы могут быть «версионными». Я убедился, что заголовки Etag и Cache-Control для новой версии, которую я пытаюсь загрузить, установлены. Ничего не работает, и я бьюсь головой о стену.

Одно небольшое ограничение, я должен использовать javascript, чтобы попытаться загрузить эту новую версию файла loader-min. Я не могу добавить простой тег сценария в мой HTML из-за того, как работает процесс обновления. Любые мысли, идеи, указания относительно того, почему IE8 не будет кэшировать версию, которую я загружаю динамически?

1 Ответ

0 голосов
/ 22 августа 2011

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

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

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