Обновление сервисных работников в одностраничных веб-приложениях - PullRequest
0 голосов
/ 11 октября 2018

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

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

1 Ответ

0 голосов
/ 12 октября 2018

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

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

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

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

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

...