NGSW - повторно получить ранее пропущенные ресурсы при навигации - PullRequest
1 голос
/ 24 июня 2019

В настоящее время я работаю над Angular-PWA и борюсь с проблемой Service-Worker / Caching.

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

Пока что все было хорошо, за исключением тех случаев, когда я начал тестировать его автономные возможности.При проверке «Offline» в DevTools большая часть приложения по-прежнему обслуживается и может использоваться, перемещаться и т. Д., За исключением отсутствующих значков и изображений, которые теперь не могут быть восстановлены.Это нормально, так как мы загружаемся лениво, это ожидаемое поведение.

Но после отмены проверки «Автономно» и повторного подключения, если я загружаю страницу, которую я не просматривал в автономном режиме, его ресурсы извлекаются как обычно.Тем не менее, если я затем вернусь к странице, которую я ранее просматривал в автономном режиме, он не получит свои недостающие ресурсы и сохранит свою версию без носителя.

Есть ли способ хранения экземпляров илиссылки на ошибки «Загрузка чанка # не удалась», и когда событие Navigation происходит со страницей, на которой было выдано сообщение об ошибке, может просто отобразить диалоговое окно и принудительно вызвать location.reload (true)?

Если все равно естьчтобы сделать это дружественным к Angular способом, предоставляют ли они какую-либо функциональность, чтобы подключаться к ошибкам «Загрузка чанка # не удалось» и иметь возможность хранить информацию из него?

Что я думаю, так это то, чтоспособ хранения информации об ошибках от Service Worker, затем в событиях навигации проверьте эту информацию, чтобы увидеть, относится ли она к странице, которую я собираюсь загрузить, если да, загрузить с сервера, если нет, из кэша.

Таким образом, политика «сеть-к-кэш», если есть ошибки, в противном случае нормальная политика кеширования.

Концептуальный вопрос, не стоит думать, что мой кодquired, если это просто сказать, любая помощь очень ценится:)

Спасибо, ребята!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...