Comments 8
Жалко что поддержка SyncManager реализована только в хромо-подобных браузерах.
А есть ли аналог «AdBlock'а» для ServiceWorker'ов? Чтобы можно было блокировать все посторонние процессы и разрешить запуск только выбранных?
ага, открыл список зарегистрированных, а там только ленивый сервис-воркер не прописал
Скорее всего это связано с тем, что стало модно пытаться подписать пользователей на пуш-уведомления, которые требуют установленного воркера.
К счастью, установленный воркер совсем не обязательно висит в памяти и работает постоянно. Совсем наоборот — по спецификации браузер может (активно пытается) потушить сервис воркер как только он стал не нужен (т.е. когда воркер обработал событие, на которое он подписан).
Кроме использования браузера, который это позволяет (Pale Moon), под хромоподобные можно поставить что-нибудь вроде chrome.google.com/webstore/detail/block-service-workers/ceokjgeibfjfcboemhdpkdalankbmnej
Поэтому, если у нас не было подключения и оно было восстановлено, SW немедленно выполнит эту задачу
Подскажите, а как эта
Чтобы проверить эту функциональность, мы должны перейти в автономный режим в нашем браузере
Если не галочку в dev-tools клацать, а выдернуть шнур из роутера (роутер оставить включённым)? Это всё описанное в статье работать будет также?.. адекватно?
const cacheFiles = [
'https://domain.ru/file/to/path.bin'
];
self.addEventListener('install', (event) => {
console.log('[sw] installed8', event);
caches
.open('static')
.then((cache) => cache.addAll(cacheFiles))
});
self.addEventListener('activate', (event) => {
console.log('[sw] activated', event);
});
self.addEventListener('fetch', (event) => {
event.respondWith(
caches.match(event.request)
.then(response => {
if (response) {
console.log('[sw] from cache', event.request, response);
return response;
} else {
return fetch(event.request);
}
})
);
});
Использую вот такой Service Worker.
- Воркер устанавливается(лог [sw] installed выполняется).
- Дожидаюсь пока файл загрузится (150мб). Вижу этот файл во вкладке Application -> Cache Storage.
- Перезапускаю страницу. Вижу что файл в кеше был найден(лог [sw] from cache выполняется). Ожидаю что файл загрузится моментально, а он грузится так же долго 30 сек.
Что я делаю не так? Спасибо.
Sign up to leave a comment.
Service Workers