В настоящее время я работаю над Angular-PWA и борюсь с проблемой Service-Worker / Caching.
По сути, мы используем Service Service Worker для кэширования большинства файлов приложения в начале на первомнагрузки.Затем мы используем ленивую загрузку для извлечения других значков и изображений при переходе на страницу, которая требует их.
Пока что все было хорошо, за исключением тех случаев, когда я начал тестировать его автономные возможности.При проверке «Offline» в DevTools большая часть приложения по-прежнему обслуживается и может использоваться, перемещаться и т. Д., За исключением отсутствующих значков и изображений, которые теперь не могут быть восстановлены.Это нормально, так как мы загружаемся лениво, это ожидаемое поведение.
Но после отмены проверки «Автономно» и повторного подключения, если я загружаю страницу, которую я не просматривал в автономном режиме, его ресурсы извлекаются как обычно.Тем не менее, если я затем вернусь к странице, которую я ранее просматривал в автономном режиме, он не получит свои недостающие ресурсы и сохранит свою версию без носителя.
Есть ли способ хранения экземпляров илиссылки на ошибки «Загрузка чанка # не удалась», и когда событие Navigation происходит со страницей, на которой было выдано сообщение об ошибке, может просто отобразить диалоговое окно и принудительно вызвать location.reload (true)?
Если все равно естьчтобы сделать это дружественным к Angular способом, предоставляют ли они какую-либо функциональность, чтобы подключаться к ошибкам «Загрузка чанка # не удалось» и иметь возможность хранить информацию из него?
Что я думаю, так это то, чтоспособ хранения информации об ошибках от Service Worker, затем в событиях навигации проверьте эту информацию, чтобы увидеть, относится ли она к странице, которую я собираюсь загрузить, если да, загрузить с сервера, если нет, из кэша.
Таким образом, политика «сеть-к-кэш», если есть ошибки, в противном случае нормальная политика кеширования.
Концептуальный вопрос, не стоит думать, что мой кодquired, если это просто сказать, любая помощь очень ценится:)
Спасибо, ребята!