работник службы skipWaiting и clients.cim не получает контроль над браузером при первой загрузке - PullRequest
0 голосов
/ 05 мая 2018

Прямо сейчас мой работник службы выглядит так:

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, находясь в автономном режиме при первой загрузке, кэшированные изображения по-прежнему обслуживаются работником сервиса. Тем не менее, сервисный работник, похоже, не берет на себя первую нагрузку. Что я делаю не так?

...