Сценарии, загруженные с ocLazyLoad, кэшируются браузером?
Извините, если это вопрос новичка.
Я использую плагин ocLazyLoad с AngularJS и UI Router. Я использую ocLazyLoad с маршрутизатором Ui для динамической загрузки / отложенной загрузки в моих контроллерах на основе маршрута, который попадал в мое веб-приложение.
Мой вопрос: будут ли эти лени-загруженные скрипты кэшироваться браузером? И если они есть, есть ли способ заставить браузер загрузить свежую копию (без отключения кэширования на моем веб-сервере).
Проблема, которую я пытаюсь решить, заключается в следующем: я хочу предоставить новую версию моего index.html с хешем MD5, чтобы браузеры перезагружали код каждый раз при развертывании новой версии веб-приложения. Поэтому, если я загружаю новый index-1ab34c.html, меня беспокоит то, что лениво загруженные файлы JS будут такими же старыми кэшированными, а не новым развернутым кодом.
1 ответ
Этот вопрос задавался более 100 раз на самом деле другим типом вопроса, у углового маршрутизатора есть проблема с кешем, основное решение этой проблемы - версия.
Настольный компьютер или ноутбук имеет возможность жесткого обновления ctrl + F5
это помогает перезагрузить все файлы с самого начала, но такие устройства, как мобильные или планшетные ПК, не имеют этой опции, поэтому вам придется использовать версию для решения этой проблемы.
Попробуйте установить версию всех ваших запросов и файлов, это поможет приложению получить новые файлы и запрос по последней версии.
пример:
var version = "0.0.1"; //0.0.2 // 0.0.9 // 0.1.0
//requests
$http.get("users?v=" + version).then(...);
//files
//loading with oclazyload or what you want no deference
"application/controller.js?v=" + version
Версия является глобальной переменной, потому что вы будете менять ее из одного места при каждой публикации.