Angular Обновление PWA слишком медленное - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть приложение Angular 8 PWA в производстве. Я регулярно делаю много обновлений, поэтому мне нужно найти способ, чтобы пользователи могли получать эти обновления при открытии приложения.

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

Я хостинг с AWS Amplify.

Чтобы решить эту проблему (я задал вопрос об этом здесь ), Я пытался использовать swUpdate.

Проблема в том, что он работает слишком медленно. Он перезагрузит браузер, если будет обновление - но это займет некоторое время. Это регулярно занимает несколько секунд после того, как пользователь открывает приложение для перезагрузки. Таким образом, вы открываете приложение, и через 4-6 секунд приложение перезагружается с новой версией.

Есть ли способ сделать swUpdate go быстрее? Или альтернативный способ загрузки новой версии приложения?

Вот мой код, который я считаю простой реализацией:

app.component.ts:

import { Component } from '@angular/core';
import { SwUpdate } from '@angular/service-worker';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {

   constructor(private swUpdate: SwUpdate) {
   title = 'Great App'

   swUpdate.available.subscribe(event => {
        swUpdate.activateUpdate().then(() => {
            window.location.reload();
            console.log('there is an Update! Reloading now.')
      });
    })

   if (!this.swUpdate.isEnabled) {
      console.log('Not going to update');
    }
 }

Но это не работает, потому что перезагрузка часто происходит через несколько секунд после того, как пользователь заходит в приложение (даже при хорошем соединении с inte rnet).

Я знаю, что я также мог бы показать сообщение людям, говорящим "Хотите обновить sh новой версией?" Но это не решит проблему, лежащую в основе медленной работы swUpdate.

...