PWA, Service Workers, Cache Storage, App Cache - Max-Starling/Notes GitHub Wiki
Service Worker
Service Worker позволяет получить приложение, использующее в первую очередь кешированные ресурсы, предоставляя таким образом поведение по-умолчанию в автономном режиме до того, как будет получено по сети больше данных (подход Offline First). Так обычно работают и нативные приложения.
Предыдущей попыткой была технология AppCache, которая позволяла действительно просто указать ресурсы для кеширования. Но она допускала много предположений о том, что вы пытаетесь сделать и ломалась, если приложение работало не в точности с этими предположениями. Синтаксис Service Worker сложнее синтаксиса AppCache, но зато можно с помощью JavaScript контролировать AppCache-подразумеваемое поведение с высокой степенью детализации, что позволяет вам решать проблемы и еще много другого. Пример использования Webpack + AppCache + SW: offline-plugin.
Необходимое условие использования SW — HTTPS-соединение.
Это можно обойти с помощью флага Insecure origins treated as secure в chrome://flags/
, заставив Chrome воспринимать сайт как безопасный. Также исключением является localhost.
Если соединение защищено, то объект типа ServiceWorkerContainer будет доступен через navigator.serviceWorker
. Этот объект позволяет получать текущее состояние SW и состояние его регистрации, а также производить над ним операции register()
, update()
, unregister()
.
(о частых проблемах)
(о работе с remote devices)
https://codelabs.developers.google.com/codelabs/sw-precache/#4