Кеширование и обновление PWA

PWA кеширует ресурсы через Service Worker. Кеш хранится в браузере посетителя. Настройки разделяют страницы, изображения, статические ресурсы, Google-шрифты и медиа: для них можно выбирать разные стратегии.

Пять стратегий

Названия и механизмы показаны в разделе «Кеширование» панели приложения:

  • Сначала кеш. Если ресурс уже есть в кеше, используется он. При отсутствии ресурса выполняется запрос по сети.
  • Сначала сеть. Сначала выполняется сетевой запрос; при недоступной сети используется кеш.
  • Только кеш. Используется только кешированный ресурс.
  • Только сеть. Используется только сетевой запрос.
  • Stale-while-revalidate. Посетитель получает имеющуюся кешированную копию, а её обновление выполняется по сети. При следующем запросе используется обновлённая копия; если кеша нет, ресурс запрашивается по сети.

Выбирая стратегию, учитывайте механизм: приоритет кеша допускает показ ранее сохранённой копии; стратегия «Только сеть» требует доступной сети. Это следствие описанных стратегий, а не обещание поведения всех функций конкретного сайта.

Настройка по типам ресурсов

  1. Откройте «Кеширование» в панели PWA.
  2. Проверьте выбранную «Витрину» и область применения настроек.
  3. Выберите стратегии в полях «Страницы», «Изображения», «Статические ресурсы», «Google шрифты» и «Медиа».
  4. Нажмите «Сохранить».
  5. Проверьте сайт с сетью и без сети на устройстве, где он будет использоваться.

На опубликованном скриншоте интерфейс рекомендует «Сначала сеть» для страниц, «Сначала кеш» для изображений и Google-шрифтов, Stale-while-revalidate для статических ресурсов. Это ориентир для выбора, а не универсальная настройка для любого магазина. Особенно внимательно проверьте данные, которые меняются на сервере.

Раздел «Кеширование» PWA: выбор витрины, описание пяти стратегий и отдельные настройки типов ресурсов

Скриншот показывает опубликованный пример интерфейса. Названия и расположение элементов в установленной версии могут отличаться.

Предварительное кеширование и офлайн-страница

Для предварительного кеширования предусмотрен отдельный раздел. Эта возможность используется для офлайн-приложений и островной архитектуры: статические блоки берутся из кеша, динамический контент запрашивается с сервера. Наличие функции не означает, что весь сайт уже подготовлен к работе без сети.

В разделе «Резервный ответ» настраивается офлайн-страница. Разработчик приводит страницу с контактами как возможный вариант резервного ответа. Подготовьте понятное сообщение о недоступной сети и проверьте результат на своём сайте.

Порядок заполнения полей предварительного кеширования и резервного ответа зависит от установленной версии; при необходимости настройки конкретного сценария обратитесь в поддержку.

Уведомление об обновлении

В разделе «Обновления кеша» опубликованного интерфейса есть поле «Версия SW» и оформление уведомления о новой версии. Приложение отслеживает изменения Service Worker; уведомление предлагает посетителю перезагрузить приложение.

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

Раздел «Обновления кеша» PWA: версия SW и предварительный вид уведомления о новой версии

«Версия SW» относится к Service Worker. Не подменяйте её номером релиза продукта в магазине Webasyst. Для проблемы с обновлением сообщите поддержке версии приложения и браузера, значение поля и то, какое содержимое остаётся прежним.

Связанные руководства