workbox: динамически установить режим отладки - PullRequest
0 голосов
/ 11 июня 2018

Затрагиваемая библиотека : workbox.setConfig

Браузер и платформа : "все браузеры". *

Запрос о проблеме или функцииОписание : я планирую установить режим отладки: true, вот процесс, который я выполняю:

  1. с использованием PWA для сохранения значения режима: true / false в кеше
  2. Открытие кэша и установка значения отладки с помощью сохраненной переменной.
  3. проблема в том, что все асинхронно, и событие установки вызывается до workbox.setconfig

Кто-нибудь знает какой-нибудь обходной путьза это

1 Ответ

0 голосов
/ 11 июня 2018

Различные методы workbox.* должны выполняться синхронно при запуске сервисного работника, чтобы загрузить необходимые пакеты времени выполнения и установить надлежащие прослушиватели событий до того, как события начнут срабатывать.Вы не сможете делать что-либо асинхронное, например чтение из Cache Storage API или IndexedDB, до инициализации Workbox.

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

// Inside your service worker,
// before you make any other calls to workbox.* methods.

const url = new URL(location.href);
const debug = url.searchParams.has('debug');
workbox.setConfig({debug});

, а затем при регистрации:

// To enable debugging:
navigator.serviceWorker.register('/service-worker.js?debug');
// To run without debugging:
// navigator.serviceWorker.register('/service-worker.js');

Возможно, вы уже знаете это, но Workbox автоматически переключится в режим debug: true, когда обнаружит, что он работает на localhost, и запустится в рабочем режиме по умолчанию.

...