обслуживающий работник, как избежать двойного refre sh для нового изменения - PullRequest
1 голос
/ 10 февраля 2020

Допустим, у меня есть установка работника сервиса прямо в моем main.js (я не жду события load или чего-либо еще).

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

Когда я изменяю код в логине. js и собираю его, мой сервисный работник также меняется, потому что я используйте workbox, и его injectManifest по-прежнему работает с содержимым файла и, если что-то меняется, восстанавливает манифест. Так что работник службы тоже изменился.

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

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

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

Я видел, как Джейк Арчибальд делает это Link , и он программно обновляет страница после обновления пользователем страницы, что означает 2 refre sh. Я хочу только один рефре sh.

Есть идеи? Спасибо

...