-
Notifications
You must be signed in to change notification settings - Fork 46
PWA, Service Workers, Cache Storage, App Cache
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