navigator.serviceWorker.controller ist immer null

Ich habe das Problem, dass der navigator.serviceWorker.controller nach der Registrierung des serviceWorker immer null ist. Ich mache nie eine Force-Aktualisierung und aktualisiere nur die Seite. Ich teste es mit Google Chrome 42.0.2311.152 m (32-Bit).

var currentServiceWorker = null;
navigator.serviceWorker.register(SERVICE_WORKER_URL).then(function(serviceWorkerRegistration { 
  if (navigator.serviceWorker.controller) {
    currentServiceWorker = navigator.serviceWorker.controller;
  } else {
    currentServiceWorker = serviceWorkerRegistration.active;
  }
});

Demzufolge

Die schreibgeschützte Controller-Eigenschaft der ServiceWorkerContainer-Schnittstelle gibt ein ServiceWorker-Objekt zurück, wenn der Status aktiviert ist (dasselbe Objekt, das von ServiceWorkerRegistration.active zurückgegeben wird). Diese Eigenschaft gibt null zurück, wenn es sich bei der Anforderung um eine erzwungene Aktualisierung handelt (Umschalt + Aktualisierung) oder wenn kein aktiver Worker vorhanden ist. ( Quelle:https: //developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/controlle)

navigator.serviceWorker.controller sollte dasselbe Objekt wie @ zurückgebserviceWorkerRegistration.active. Aber mit.active Ich bekomme den aktiven Arbeiter mit.controller nicht.

Haben Sie Ideen für diese Situation?

Danke, Andi

Antworten auf die Frage(6)

Ihre Antwort auf die Frage