Comments 8
Жалко что поддержка SyncManager реализована только в хромо-подобных браузерах.
0
А есть ли аналог «AdBlock'а» для ServiceWorker'ов? Чтобы можно было блокировать все посторонние процессы и разрешить запуск только выбранных?
+2
ага, открыл список зарегистрированных, а там только ленивый сервис-воркер не прописал
0
Скорее всего это связано с тем, что стало модно пытаться подписать пользователей на пуш-уведомления, которые требуют установленного воркера.
К счастью, установленный воркер совсем не обязательно висит в памяти и работает постоянно. Совсем наоборот — по спецификации браузер может (активно пытается) потушить сервис воркер как только он стал не нужен (т.е. когда воркер обработал событие, на которое он подписан).
+1
Кроме использования браузера, который это позволяет (Pale Moon), под хромоподобные можно поставить что-нибудь вроде chrome.google.com/webstore/detail/block-service-workers/ceokjgeibfjfcboemhdpkdalankbmnej
0
Поэтому, если у нас не было подключения и оно было восстановлено, SW немедленно выполнит эту задачу
Подскажите, а как эта
Чтобы проверить эту функциональность, мы должны перейти в автономный режим в нашем браузере
Если не галочку в dev-tools клацать, а выдернуть шнур из роутера (роутер оставить включённым)? Это всё описанное в статье работать будет также?.. адекватно?
+1
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 сек.
Что я делаю не так? Спасибо.
0
Sign up to leave a comment.
Service Workers