Триггерное событие, когда serviceworker завершил выборку новых файлов? - PullRequest
0 голосов
/ 25 февраля 2020

Short : Интересно, возможно ли инициировать какое-либо событие или обратный вызов, когда специалист по обслуживанию завершит загрузку файлов после обновления.

Длинная версия : У меня есть PWA, использующий angular (8) и его angular сервисная программа. В конфиге ngsw я установил режим предварительной установки и обновления.

Обычно, когда обновление отправляется на сервер, приложение регистрируется в событии обновления, и специалист по обслуживанию начинает загружать новые файлы (. js, assets,. html et c). Я вижу на вкладке сети консоли, как новые файлы загружаются один за другим. Однако, поскольку это большое приложение, это может занять несколько минут.

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

Существует ли какой-либо обратный вызов, перехват или что-то еще, что запускается, когда работник службы завершает загрузку? Или, может быть, какая-то другая форма для достижения этого?

1 Ответ

0 голосов
/ 26 февраля 2020

Да, Angular предоставляет SwUpdate услугу , на которую вы можете подписаться. Его использование выглядит так:

@Injectable()
export class LogUpdateService {

  constructor(updates: SwUpdate) {
    updates.available.subscribe(event => {
      console.log('current version is', event.current);
      console.log('available version is', event.available);
    });
    updates.activated.subscribe(event => {
      console.log('old version was', event.previous);
      console.log('new version is', event.current);
    });
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...