Я работаю над прогрессивным веб-приложением в angular 4, которое, похоже, отлично работает в онлайн-режиме. Он также работает в автономном режиме, если я не использую динамическое кеширование.
Итак, вот этот ngsw-manifest.json
, в котором я проделал некоторую настройку:
{
"routing": {
"index": "/index.html",
"routes": {
"/": {
"match": "exact"
},
"/coffee": {
"match": "prefix"
}
}
},
"static.ignore": [
"^\/icons\/.*$"
],
"external": {
"urls": [
{
"url": "https://fonts.googleapis.com/icon?family=Material+Icons"
},
{
"url": "https://fonts.gstatic.com/s/materialicons/v29/2fcrYFNaTjcS6g4U3t-Y5ZjZjT5FdEJ140U2DJYC3mY.woff2"
}
]
},
"dynamic": {
"group": [
{
"name": "api",
"urls": {
"http://localhost:3000/coffees": {
"match": "prefix"
}
},
"cache": {
"optimizeFor": "freshness",
"networkTimeoutMs": 1000,
"maxEntries": 30,
"strategy": "lru",
"maxAgeMs": 360000000
}
}
]
}
}
Таким образом, ключ dynamic
в приведенном выше json кэширует содержимое страницы для автономного использования. Вот изображение кэшируемого контента:
Однако, когда я пытаюсь перезагрузить страницу в автономном режиме после кэширования, содержимое не отображается. Есть какая-то конфигурация, которую я пропустил?
shell
вашего веб-приложения с помощью сервис-воркера. Использование оболочки приложения + модель динамического содержимого значительно улучшает производительность приложения и действительно хорошо работает с кэшированием сервис-воркеров в качестве прогрессивного улучшения. Однако, когда сервис-воркеры не поддерживаются в вашем браузере, ресурсы не кэшируются в автономном режиме, но контент по-прежнему передается по сети, и пользователь по-прежнему получает базовые возможности. - person abielita   schedule 18.09.2017