Сценарии, загруженные с 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

Версия является глобальной переменной, потому что вы будете менять ее из одного места при каждой публикации.

Другие вопросы по тегам