Обновление сервисных работников в одностраничных веб-приложениях

Я работаю над одностраничным веб-приложением и внедряю сервисных работников. Я узнал, что мне нужно вручную обновить работника службы, потому что одностраничное приложение не имеет традиционных событий навигации, однако мне неясно, какие роли clients.claim() а также self.skipWaiting(),

Нужно ли вызывать эти функции после ручного обновления работника сервиса? я видел skipWaiting() называется в install событие и claim() называется в activate обработчик события. Если мне нужно одно или оба из них, это правильные места, чтобы сделать эти звонки?

1 ответ

clients.claim() обычно вызывается в событии установки, чтобы получить контроль над неконтролируемыми клиентами после активации сервисного работника.

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

За skipWaiting() это заставляет вашего работника службы выгнать текущего активного работника и активировать себя, как только он входит в фазу ожидания (или сразу, если он уже находится в фазе ожидания). Это не заставит вашего работника пропустить установку, просто ждет. Довольно часто это называют в install событие.

Это должно быть вызвано при обновлении работника сервиса.

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