История
У меня есть веб-сайт, использующий традиционный кеш браузера, сайт сильно кэшируется, до 365 дней для статического контента.
И чтобы очистить кеш после развертывания новой версии, я использую строку запроса идентификатора версии, например:
<script src="js/main.js?version=1.3.0"></script>
Но для каждого обновления версии время загрузки плохое, потому что браузеру необходимо загрузить все новое содержимое при изменении строки запроса.
Ситуация
Теперь у нас есть Service Worker, и я интегрировал его в свой веб-сайт. Пока все в порядке, строка запроса идентификатора версии все еще используется.
// simply cache all the static contents
global.toolbox.router.get('/', global.toolbox.networkFirst);
global.toolbox.router.get(/(.js|.css|.png|.jpg|.json|.html)/, global.toolbox.fastest);
И такое же поведение по-прежнему присутствует, как и до интеграции ПО. И все же обновление медленное, как всегда...
Вопрос
И мне интересно, есть ли лучший подход? который может сделать что-то вроде приведенного ниже и при этом сохранить тяжелый механизм кэширования (для старых браузеров):
- Найдена новая версия
- По-прежнему используйте старый контент последней версии,
- При получении всего нового контента новой версии,
- В следующий раз, когда пользователь зайдет на сайт, он будет использовать последнюю версию.
ПРИМЕЧАНИЕ. Цель — ускорить загрузку сайта при развертывании новой версии.