MDN suggerisce che fate quanto segue per creare e popolare la cache operaio di servizio:Cosa fa event.waitUntil nel servizio di assistenza e perché è necessario?
this.addEventListener('install', function(event) {
event.waitUntil(
caches.open('v1').then(function(cache) {
return cache.addAll([
'/sw-test/',
'/sw-test/index.html',
... etc ...
]);
})
);
});
Non capisco quel codice. Il metodo è documentato waitUntil
troppo, e sembra che il codice di cui sopra è l'unico scopo della sua esistenza in questo momento:
Il metodo ExtendableEvent.waitUntil() estende la durata della manifestazione . Quando viene chiamato in un EventHandler associato all'evento di installazione, ritarda il trattamento dell'installatore come installato finché la promessa passata non viene risolta. Viene utilizzato principalmente per garantire che un lavoratore del servizio non sia considerato installato fino a quando tutte le core di memoria cache da cui dipende sono popolate.
Quello che non capisco è:
- Come si fa
waitUntil
effetto generalmente flusso di codice? Interrompe la propagazione dell'evento finché non si risolve la promessa? - Perché è necessario nel contesto dell'apertura della cache dei lavoratori?
Sto chiedendo questa domanda perché ho problemi con il codice sopra e mi piacerebbe capirlo.
Ancora non capisco. Se rimuovo 'event.waitUntil', cosa succederà? Ho provato a rimuovere 'event.waitUntil', ha funzionato ancora bene. L'archiviazione nella cache aveva una risorsa memorizzata nella cache e la pagina poteva essere visitata offline. Se hai bisogno di Demo, posso inviarlo a te. – youngwind
Se non lo chiami, l'addetto all'assistenza potrebbe essere fermato in qualsiasi momento. Questo non significa che verrà fermato, quindi in alcuni casi potrebbe funzionare e in alcuni casi (a seconda dei tempi) non funzionerà. – Marco
Sì, avevo trovato quello che hai detto nel documento ufficiale. Quello che voglio sapere è: 1. Come attivare i casi "non funzionanti"? 2. Perché il lavoratore di servizio potrebbe essere fermato se non lo chiamo? Il punto chiave è Perché, non cosa. Non ho trovato la risposta nel documento. – youngwind