@Nc_Soft

Как реализуется сброс кеширования страниц в Single Page Application?

Вот допустим зашел юзер, загрузил index.html, скрипты, стили, шаблоны.
Они попали ему в кеш браузера.
Как лучше сделать обновление клиентского кода, чтобы юзерам не приходилось перезагружать страницу?
  • Вопрос задан
  • 2884 просмотра
Решения вопроса 1
Serhioromano
@Serhioromano
Web Developer
Ни как нельзя со стороны сервера сбросить клиентский кешь. Обычно в таком случае делают систему оповещений. Например версия на сервре стала больше чем клиентская. Тогда пользователь видит сообщение на сайте что произошло обновление и что ему нужно обновить страницу если он хочет его получить.

Это не только удобно но и правильно. Пользователь должен знать когда и что появилось. Так вы не только обновляете но и убеждаетесь что пользователи знают что нового в новой версии, так как прикрутить changelog к подобной системе не составит труда.

Можно так же автоматически обновить страницу если на сервере обновлась версия без каких либо уведомлений.

Если у вас в прокте есть package.json то можно при помощи $http читать версию в этом файле. Все что нужно при релизе это обнвоить весрию. Для этого нужно будет что бы какойто скрипт с интервалом проверял данные.

Если не хотите инетрвал что бы не нагружать, можете это встроить в свое API. В config настройет $httpProvider что бы всегда отправлять текущую версию клиента. И на сервере, прежде чем выдать данные, проверте эту версию и если есть обновление, то выдайте специальный Json кторый перезагрузит страницу. Это можно добвавить interceptors которые будет это делать и проверять с каждым запросом автоматически.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
miraage
@miraage
Старый прогер
1) весь код собирать, минифицировать, упаковывать и сёрвить nginx gzip_static on

OR

2) перед загрузкой роута/контроллера/итд через deferred загружать нужные скрипты

OR

3) Готовое решение (за работоспособность не ручаюсь - выдача гугла)

ocLazyLoad
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы