2017-01-26 3 views
3

Когда браузер обнаруживает, что хранилище критически низкое, он может выбрать выдвоение кеша сервис-работника, как указано W3C doc.Обнаружение выселения сервисного работника

Поскольку мои пользователи могут хранить свои заказы для офлайн-доступа, я хочу предупредить их, что браузер удалил их. Как я могу обнаружить со страницы, которую мой Сервис-работник потерял, и таким образом модифицирует интерфейс?

Обычно я адаптирую свой интерфейс к присутствию или отсутствию своего Рабочего Рабочего, полагаясь на navigator.serviceWorker.register. Но в этом случае Service Worker все еще зарегистрирован, но лишен кэша.

Реагировать на событие onevicted не достаточно, поскольку удаление кеша может произойти, когда пользователь даже не просматривает мой веб-сайт.

ответ

2

Возможно, вы захотите запросить Persistent Storage. Эта статья относится к Origin Trial, которая началась с Chrome 52, но с тех пор она стала включена по умолчанию в Chrome 55+, поэтому больше не нужно проходить процесс регистрации пробной версии Origin.

Предполагая, что вы не используете постоянное хранилище, я не знаю о каком-либо событии, которое срабатывает у сервисного работника, когда ваши данные, хранящиеся в вашем источнике, будут выселены.

Можно проверить содержимое кеша из контекста контролируемых страниц с помощью window.caches, но это работает только тогда, когда пользователи открывают одну из ваших веб-страниц, и вам нужно явно опросить, чтобы проверить содержимое кеша, поскольку нет событий для прослушивания обновлений кеша.

Смежные вопросы