Swapcache si assicura che le chiamate "successive" alle risorse memorizzate nella cache vengano prese dalla nuova cache. Significato successivo dopo lo swapcache. Per vedere questo in azione provare a impostare la proprietà src di un'img in modo dinamico dopo la chiamata a swapcache nell'evento updateready (in modo che il browser la carichi in quel particolare tempo ). Assicurati che questa immagine non sia già stata caricata da un'altra parte nella pagina, dal momento che sarà distorcere questo test. Adesso cambia l'immagine e cambia i file manifest (per forzare il ricaricamento dei file memorizzati nella cache). Ricarica la pagina nel tuo browser. Ora dovresti vedere la nuova versione dell'immagine nella pagina di rendering. Adesso commenta la chiamata a swapcache. Apporta una modifica al file manifest e ricarica la pagina e quindi tutte le risorse. Aggiorna di nuovo la pagina (per assicurarsi di avere una versione dalla nuova cache). Adesso cambia di nuovo l'immagine e cambia il manifest. Ricarica nuovamente la pagina: ora vedi la vecchia versione dell'immagine. Nell'ultimo caso, il browser ha terminato di caricare le nuove versioni nella cache, ma dal momento che lo swapcache non è stato chiamato , l'immagine è stata ancora prelevata dalla vecchia cache.
Se non si esegue alcun caricamento dinamico delle risorse nella pagina, lo swapcache non ha alcun effetto.
In particolare, se si ricarica la pagina nel gestore di eventi updateready chiamando swapcache primo ha alcun effetto in quanto a ricaricare la pagina otterrà dalla nuova cache comunque.
In "updateready", viene visualizzato un avviso "Aggiornamento disponibile, fare clic per riavviare ora" ed eseguire 'location.reload();' al clic. Se non fanno clic, l'app viene aggiornata automaticamente al successivo caricamento. Non capisco come posso aggiornare l'app senza ricaricare, con 'swapCache()'. E * con * ricarico, non ho comunque bisogno di 'swapCache()'. Ancora non capisco quando è necessario. –
Ottiene anche più strano di quello: in Chrome Im ottenendo l'evento 'updateready' e quando chiamo' swapCache() 'all'interno del gestore, Chrome si lamenta' Uncaught InvalidStateError: Impossibile eseguire 'swapCache' su 'ApplicationCache': non c'è una nuova cache dell'applicazione scambiare a. – Mati