Preparazione alla rimozione di AppCache

In Chrome 85 viene rimosso il supporto di AppCache per impostazione predefinita. La maggior parte degli sviluppatori dovrebbe eseguire subito la migrazione da AppCache, senza aspettare più a lungo.

A seguito di annunci precedenti, il supporto per AppCache verrà rimosso da Chrome e da altri browser basati su Chromium. Invitiamo gli sviluppatori a eseguire la migrazione da AppCache ora, anziché attendere più a lungo.

I service worker, ampiamente supportati nei browser attuali, offrono un'alternativa all'esperienza offline offerta da AppCache. Vedi Strategie di migrazione.

Sequenza

Le modifiche recenti alla pianificazione delle release di Chrome indicano che le tempistiche di alcuni di questi passaggi possono variare. Cercheremo di mantenere aggiornate queste tempistiche, ma a questo punto esegui la migrazione da AppCache il prima possibile, invece di attendere traguardi specifici.

Esiste ancora una funzionalità "deprecata", ma registra i 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)
Restrizione di ambito AppCache Chrome 80 (febbraio 2020)
Inizia la prova "invertita" dell'origine Chrome 84 (luglio 2020)
Rimozione da contesti sicuri, ad eccezione di quelli che hanno attivato la prova dell'origine. Chrome 85 (agosto 2020)
Completa la rimozione dai contesti sicuri per tutti, completando la prova dell'origine 5 ottobre 2021 (circa Chrome 95)

Prova dell'origine

La cronologia elenca due imminenti traguardi per la rimozione. A partire dalla versione 85 di Chrome, 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 a una prova dell'origine "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à completamente rimossa per tutti, anche per coloro che si erano registrati per la prova dell'origine.

Per partecipare alla prova dell'origine "inversa":

  1. Richiedi un token per la tua origine.
  2. Aggiungi il token alle tue pagine HTML. Ci sono due modi per farlo:
    • Aggiungi un tag <meta> origin-trial in 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
  3. Aggiungi lo stesso token ai manifest di AppCache. Per farlo, utilizza un nuovo campo nel manifest con il formato:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(È necessario che sia presente una nuova riga tra ORIGIN-TRIAL e il token).

Di seguito puoi vedere un progetto di esempio incorporato che dimostra l'aggiunta dei token della prova dell'origine corretti nei file index.html e manifest.appcache.

Perché i token sono necessari in più luoghi?

Lo stesso token della prova dell'origine deve essere associato a:

  • Tutte le pagine HTML che utilizzano AppCache.
  • Tutti i file manifest di AppCache tramite il campo manifest ORIGIN-TRIAL.

Se in passato hai partecipato a prove dell'origine, potresti aver aggiunto il token solo alle 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 della prova dell'origine alle pagine HTML attiva l'interfaccia window.applicationCache dalle app web. Le pagine che non sono associate a un token non potranno utilizzare i metodi e gli eventi window.applicationCache. Inoltre, le pagine senza un token non potranno caricare risorse da AppCache. A partire da Chrome 85, si comportano come se AppCache non esistesse.

L'aggiunta del token della prova dell'origine ai manifest di AppCache indica che ogni manifest è ancora valido. A partire da Chrome 85, tutti i manifest che non includono un campo ORIGIN-TRIAL verranno trattati come non corretti e le regole all'interno del file manifest verranno ignorate.

Tempi e logistica del deployment della prova dell'origine

Mentre la prova "inversa" dell'origine inizia ufficialmente con Chrome 84, puoi registrarti per la prova dell'origine oggi stesso e aggiungere i token ai manifest HTML e AppCache. Man mano che il pubblico della tua app web esegue gradualmente l'upgrade a Chrome 84, tutti i token già aggiunti entreranno in vigore.

Dopo aver aggiunto un token al file manifest di AppCache, visita about://appcache-internals per verificare che l'istanza locale di Chrome (versione 84 o successive) abbia associato correttamente il token della prova dell'origine alle voci memorizzate nella cache del manifest. Se la prova dell'origine viene riconosciuta, dovresti vedere un campo con Token Expires: Tue Apr 06 2021... in quella pagina, associato al tuo manifest:

L&#39;interfaccia about://appcache-internals mostra un token riconosciuto.

Test prima della rimozione

Ti consigliamo di eseguire la migrazione da AppCache il prima possibile. Se vuoi testare la rimozione di AppCache nelle tue app web, utilizza il flag about://flags/#app-cache per simularne la rimozione. Questo flag è disponibile a partire da Chrome 84.

Strategie di migrazione

I service worker, che sono 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 delle funzionalità di AppCache, anche se non replica l'intera interfaccia di AppCache. In particolare, non sostituisce l'interfaccia window.applicationCache o i relativi eventi AppCache.

Per i casi più complessi, le librerie come Workbox forniscono un modo semplice per creare un service worker moderno per la tua app web.

I 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 esegui il deployment di un service worker che controlla una determinata pagina, non puoi più utilizzare AppCache su quella pagina.

Per questo motivo, ti consigliamo di non tentare di eseguire la migrazione pezzo per pezzo ai service worker. Sarebbe un errore eseguire il deployment di un service worker che contiene solo parte della logica di memorizzazione nella cache. Non puoi ricorrere ad AppCache per "colmare le lacune".

Allo stesso modo, se esegui il deployment di un service worker prima della rimozione di AppCache e poi scopri di dover eseguire il rollback all'implementazione precedente di AppCache, devi assicurarti di annullare la registrazione di quel service worker. Finché è 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 per avere ulteriori informazioni sui piani di rimozione di AppCache.

Firefox su tutte le piattaforme

Firefox ha ritirato AppCache nella release 44 (settembre 2015) e a partire da settembre 2019 ha rimosso il relativo supporto nelle build beta e Nightly.

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 browser diverso da quello di Chrome su altre piattaforme: WKWebView. I service worker non sono attualmente supportati nelle app per iOS che utilizzano WKWebView e l'annuncio di 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 considerevole di Chrome per iOS.

Android WebView

Alcuni sviluppatori di app per Android utilizzano Chrome WebView per visualizzare contenuti web e potrebbero anche usare AppCache. Tuttavia, non è possibile abilitare una prova dell'origine per un componente WebView. Alla luce di ciò, Chrome WebView supporterà AppCache senza una prova dell'origine fino alla rimozione finale, prevista in Chrome 90.

Scopri di più

Di seguito sono riportate alcune risorse per gli sviluppatori che eseguono la migrazione da AppCache ai service worker.

Articoli

Strumenti

Richiesta di aiuto

Se riscontri un problema utilizzando 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 Issue Tracker di Chromium.

Immagine hero basata sullo Smithsonian Institution Archives, Acc. 11-007, casella 020, immagine n. MNH-4477.