Прямо сейчас мой работник службы выглядит так:
self.addEventListener('install', event => {
console.log('V1 installing…')
self.skipWaiting()
event.waitUntil(
caches
.open('sw-cache')
.then(cache =>
cache.addAll([
'/assets/img/bbcourt-2pt.png',
'/assets/img/bbcourt-3pt.png'
])
)
)
})
self.addEventListener('activate', event => {
self.clients.claim()
console.log('V1 now ready to handle fetches!')
})
self.addEventListener('fetch', event => {
const url = new URL(event.request.url)
if (
url.origin == location.origin &&
url.pathname == '/assets/img/bbcourt-2pt.png'
) {
event.respondWith(caches.match('/assets/img/bbcourt-2pt.png'))
}
if (
url.origin == location.origin &&
url.pathname == '/assets/img/bbcourt-3pt.png'
) {
event.respondWith(caches.match('/assets/img/bbcourt-3pt.png'))
}
})
В настоящее время я пытаюсь использовать self.skipWaiting () и self.clients.claim (), чтобы немедленно получить контроль над браузером с этим работником службы, чтобы даже когда я перехожу на страницу с bbcourt-2pt.png и bbcourt-3pt.png, находясь в автономном режиме при первой загрузке, кэшированные изображения по-прежнему обслуживаются работником сервиса. Тем не менее, сервисный работник, похоже, не берет на себя первую нагрузку. Что я делаю не так?