Chrome 85 rimuove il supporto di AppCache per impostazione predefinita. La maggior parte degli sviluppatori dovrebbe eseguire la migrazione da AppCache ora e non aspettare oltre.
In seguito ai precedenti annunci, il supporto per AppCache verrà rimosso da Chrome e da altri browser basati su Chromium. Invitiamo gli sviluppatori a eseguire subito la migrazione da AppCache, anziché attendere ulteriormente.
I service worker, ampiamente supportati nei browser attuali, offrono un'alternativa per fornire l'esperienza offline che offriva AppCache. Vedi Strategie di migrazione.
Cronologia
A causa delle recenti modifiche al programma di rilascio di Chrome, la tempistica di alcuni di questi passaggi potrebbe variare. Cercheremo di mantenere aggiornata questa cronologia, ma a questo punto esegui la migrazione da AppCache il prima possibile, anziché attendere traguardi specifici.
Una funzionalità "ritirata" esiste ancora, ma registra messaggi di avviso che ne sconsigliano l'utilizzo. Una funzionalità "rimossa" non esiste più nel browser.
Ritiro in contesti non sicuri | Chrome 50 (aprile 2016) |
Rimozione da contesti non sicuri | Chrome 70 (ottobre 2018) |
Ritiro in contesti sicuri | Chrome 79 (dicembre 2019) |
Limitazione dell'ambito di AppCache | Chrome 80 (febbraio 2020) |
Inizia la prova dell'origine "Inverti" | Chrome 84 (luglio 2020) |
Rimozione dai contesti sicuri, ad eccezione di quelli che hanno attivato la prova dell'origine | Chrome 85 (agosto 2020) |
Rimozione completa dai contesti sicuri per tutti, con il completamento della prova dell'origine | 5 ottobre 2021 (circa Chrome 95) |
Prova dell'origine
La sequenza temporale elenca due prossime tappe fondamentali per la rimozione. A partire da Chrome 85, AppCache non sarà più disponibile in Chrome per impostazione predefinita. Gli sviluppatori che hanno bisogno di più tempo per eseguire la migrazione da AppCache possono registrarsi per una origin trial "inversa" per estendere la disponibilità di AppCache per le loro app web. La prova dell'origine inizierà in Chrome 84 (prima della rimozione predefinita in Chrome 85) e sarà attiva fino al 5 ottobre 2021 (circa Chrome 95). A quel punto, AppCache verrà rimosso completamente per tutti, anche per coloro che si erano registrati alla prova dell'origine.
Per partecipare alla prova dell'origine "inversa":
- Richiedi un token per la tua origine.
- Aggiungi il token alle tue pagine HTML. Esistono due modi per farlo:
- Aggiungi un tag
origin-trial
<meta>
all'intestazione di ogni pagina. Ad esempio:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
. - In alternativa, configura il server in modo che restituisca risposte contenenti l'intestazione HTTP
Origin-Trial
. L'intestazione della risposta risultante dovrebbe avere un aspetto simile a questo:Origin-Trial: TOKEN_GOES_HERE
- Aggiungi un tag
- Aggiungi lo stesso token ai manifest AppCache. Per farlo, utilizza un nuovo campo nel manifest, con il formato:
ORIGIN-TRIAL:
TOKEN_GOES_HERE
(Deve essere presente una nuova riga tra ORIGIN-TRIAL
e il tuo token.)
Perché i token sono necessari in più posizioni?
Il token di prova con la stessa origine deve essere associato a:
- Tutte le tue pagine HTML che utilizzano AppCache.
- Tutti i manifest AppCache tramite il campo manifest
ORIGIN-TRIAL
.
Se hai partecipato a prove dell'origine in passato, potresti aver aggiunto il token solo alle tue pagine HTML. La prova dell'origine "inversa" di AppCache è speciale in quanto devi associare un token anche a ogni manifest AppCache.
L'aggiunta del token di prova dell'origine alle pagine HTML attiva l'interfaccia window.applicationCache
all'interno delle tue app web. Le pagine non associate a un token non potranno utilizzare i metodi e gli eventi window.applicationCache
. Le pagine senza token non potranno caricare risorse dalla cache delle app. A partire da Chrome 85, si comporteranno come se AppCache non esistesse.
L'aggiunta del token di prova dell'origine ai manifest AppCache indica che ogni manifest è ancora valido. A partire da Chrome 85, tutti i manifest che non hanno un campo ORIGIN-TRIAL
verranno considerati non validi e le regole all'interno del manifest verranno ignorate.
Tempistiche e logistica del deployment della prova dell'origine
Anche se la prova dell'origine "inversa" inizia ufficialmente con Chrome 84, puoi registrarti oggi stesso alla prova dell'origine e aggiungere i token ai manifest HTML e AppCache. Man mano che il pubblico della tua app web esegue l'upgrade a Chrome 84, i token che hai già aggiunto avranno effetto.
Dopo aver aggiunto un token al file manifest AppCache, visita about://appcache-internals
per verificare che la tua istanza locale di Chrome (versione 84 o successive) abbia associato correttamente il token di prova dell'origine alle voci memorizzate nella cache del manifest. Se la prova dell'origine viene riconosciuta, nella pagina dovrebbe essere visualizzato un campo con Token Expires: Tue Apr 06 2021...
associato al manifest:

Test prima della rimozione
Ti invitiamo vivamente a eseguire la migrazione da AppCache il prima possibile. Se vuoi testare la rimozione di AppCache nelle tue app web, utilizza il about://flags/#app-cache
flag per simularne la rimozione. Questo flag è disponibile a partire da Chrome 84.
Strategie di migrazione
I service worker, ampiamente supportati nei browser attuali, offrono un'alternativa all'esperienza offline fornita da AppCache.
Abbiamo fornito un polyfill che utilizza un service worker per replicare alcune funzionalità di AppCache, anche se non replica l'intera interfaccia di AppCache. In particolare, non sostituisce l'interfaccia window.applicationCache
o gli eventi AppCache correlati.
Per i casi più complessi, librerie come Workbox offrono un modo semplice per creare un service worker moderno per la tua app web.
Service worker e AppCache si escludono a vicenda
Mentre lavori alla tua strategia di migrazione, tieni presente che Chrome disattiverà la funzionalità AppCache su qualsiasi pagina caricata sotto il controllo di un service worker. In altre parole, non appena implementi un service worker che controlla una determinata pagina, non puoi più utilizzare AppCache in quella pagina.
Per questo motivo, ti consigliamo di non tentare di eseguire la migrazione ai service worker pezzo per pezzo. Sarebbe un errore eseguire il deployment di un service worker che contiene solo una parte della logica di memorizzazione nella cache. Non puoi utilizzare AppCache per "colmare le lacune".
Allo stesso modo, se implementi un service worker prima della rimozione di AppCache e poi scopri che devi eseguire il rollback all'implementazione precedente di AppCache, devi assicurarti di annullare la registrazione del service worker. Se è presente un service worker registrato nell'ambito di una determinata pagina, AppCache non verrà utilizzato.
La storia multipiattaforma
Ti invitiamo a contattare un fornitore di browser specifico se vuoi maggiori informazioni sui suoi piani per la rimozione di AppCache.
Firefox su tutte le piattaforme
Firefox ha ritirato AppCache nella release 44 (settembre 2015) e ha rimosso il supporto per questa funzionalità nelle build beta e Nightly a partire da settembre 2019.
Safari su iOS e macOS
Safari ha ritirato AppCache all'inizio del 2018.
Chrome per iOS
Chrome per iOS è un caso speciale, in quanto utilizza un motore del browser diverso rispetto a Chrome su altre piattaforme: WKWebView. I service worker non sono attualmente supportati nelle app per iOS che utilizzano WKWebView e l'annuncio della rimozione di AppCache di Chrome non riguarda la disponibilità di AppCache su Chrome per iOS. Tieni presente questo aspetto se sai che la tua app web ha un pubblico significativo di utenti di Chrome per iOS.
WebView Android
Alcuni sviluppatori di applicazioni per Android utilizzano WebView di Chrome per visualizzare i contenuti web e potrebbero utilizzare anche AppCache. Tuttavia, non è possibile attivare una prova dell'origine per un componente WebView. Alla luce di ciò, Chrome WebView supporterà AppCache senza una prova dell'origine fino alla rimozione definitiva, prevista in Chrome 90.
Scopri di più
Ecco alcune risorse per gli sviluppatori che eseguono la migrazione da AppCache ai service worker.
Articoli
- Service worker: un'introduzione
- Il ciclo di vita del service worker
- Formazione sulle app web progressive
- Affidabilità della rete
Strumenti
Richiesta di aiuto
Se riscontri un problema durante l'utilizzo di uno strumento specifico, apri un problema nel relativo repository GitHub.
Puoi porre una domanda generale sulla migrazione da AppCache su Stack Overflow utilizzando il tag html5-appcache
.
Se riscontri un bug relativo alla rimozione di AppCache di Chrome, segnalalo utilizzando lo strumento di monitoraggio dei problemi di Chromium.
Immagine hero basata su Smithsonian Institution Archives, Acc. 11-007, Box 020, Image No. MNH-4477.