Ich habe ein Szenario, in dem ich brauche postmessage der neuesten Version Dateien Array von Client Service Arbeiter auf dem Update-Servicefall Arbeiter zu senden.Wie warte ich auf das Ereignis "Nachricht" innerhalb des Ereignisses "Installation" in Service Worker?
aktuellen Code
reg.onupdatefound = function() {
// The updatefound event implies that reg.installing is set; see
// https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event
var installingWorker = reg.installing;
console.log('on update found');
// service worker is updated with version name eesh
if(reg.installing)
{
reg.installing.postMessage({
data: cacheUrls()
});
}
installingWorker.onstatechange = function() {
switch (installingWorker.state) {
case 'installed':
if (navigator.serviceWorker.controller) {
// At this point, the old content will have been purged and the fresh content will
// have been added to the cache.
// It's the perfect time to display a "New content is available; please refresh."
// message in the page's interface.
console.log('New or updated content is available. yo yo');
// navigator.serviceWorker.controller.postMessage({data: location})
} else {
// At this point, everything has been precached.
// It's the perfect time to display a "Content is cached for offline use." message.
console.log('ServiceWorker registration successful with scope: ', reg.scope);
}
break;
case 'redundant':
console.error('The installing service worker became redundant.');
break;
}
};
};
};
Aber manchmal ist die Installation geschieht zuerst und dann „Nachricht“ Ereignis wird im Servicemitarbeiter zugehört. Wie warte ich auf "Nachricht" -Ereignis im "Install" -Ereignis des Service-Arbeiters?