Preparazione alla rimozione di AppCache

Chrome 85 rimuove il supporto per AppCache per impostazione predefinita. La maggior parte degli sviluppatori dovrebbe eseguire subito la migrazione da AppCache e non attendere ancora.

A seguito dei precedenti annunci, il supporto per AppCache verrà rimosso da Chrome e da altri browser basati su Chromium. Incoraggiamo gli sviluppatori a eseguire la migrazione da AppCache ora, anziché attendere ancora.

Service worker, ampiamente supportate nei browser attuali, offrono un'alternativa alla fornitura offline l'esperienza offerta da AppCache. Vedi Strategie di migrazione.

Cronologia

Le modifiche recenti al programma delle release di Chrome comportano che i tempi di alcuni di questi passaggi possano variare. Cercheremo di mantenere aggiornata questa tempistica, ma a questo punto esegui la migrazione da AppCache il prima possibile, invece di attendere di raggiungere traguardi specifici.

Un modello "ritirato" esiste ancora, ma registra messaggi di avviso che ne sconsigliano l'uso. Un file "rimosso" la funzionalità 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 di ambito di AppCache Chrome 80 (febbraio 2020)
"Inverti" inizia la prova dell'origine Chrome 84 (luglio 2020)
Rimozione da contesti sicuri, ad eccezione di quelli per cui è stata attivata 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

Nella cronologia sono elencate due tappe imminenti per la rimozione. A partire da Chrome 85, AppCache non sarà più disponibile in Chrome per impostazione predefinita. Gli sviluppatori che richiedono più tempo per eseguire la migrazione da AppCache possono registrarsi per un "inverso" prove dell'origine per estendere la disponibilità di AppCache per le proprie 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à rimossa completamente per tutti, anche per coloro che si erano registrati alla prova dell'origine.

Per partecipare al "inverti" prova dell'origine:

  1. Richiedi un token per la tua origine.
  2. Aggiungi il token alle pagine HTML. Puoi farlo in due modi:
      .
    • 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
  3. Aggiungi lo stesso token ai manifest di AppCache. A tale scopo, utilizza un nuovo campo nel file manifest, con il formato:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

Deve essere presente una nuova riga tra ORIGIN-TRIAL e il token.

Di seguito è riportato un progetto di esempio che mostra l'aggiunta dei token di prova dell'origine corretti nei file index.html e manifest.appcache.

Perché i token sono necessari in più posti?

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

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

Se in passato hai partecipato alle prove dell'origine, potresti aver aggiunto il token solo alle tue pagine HTML. L'operazione "inverti" di AppCache La prova dell'origine è speciale in quanto devi associare un token anche a ciascun manifest di AppCache.

L'aggiunta del token della prova dell'origine alle tue pagine HTML attiva l'interfaccia window.applicationCache dalle tue app web. Le pagine non associate a un token non potranno utilizzare metodi ed eventi window.applicationCache. Anche le pagine senza un token non potranno caricare le risorse da AppCache. A partire da Chrome 85, si comporteranno 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 file manifest privi di un campo ORIGIN-TRIAL verranno trattati come non validi e le regole all'interno del file manifest verranno ignorate.

Tempi di deployment e logistica della prova dell'origine

Mentre la funzione "inverti" La prova dell'origine inizia ufficialmente con Chrome 84, puoi registrarti oggi stesso per la prova dell'origine e aggiungere i token ai tuoi manifest HTML e AppCache. Man mano che il pubblico della tua app web esegue gradualmente l'upgrade a Chrome 84, tutti i token che hai già aggiunto verranno applicati.

Dopo aver aggiunto un token al file manifest di AppCache, visita about://appcache-internals per verificare che la tua istanza locale di Chrome (versione 84 o successiva) abbia associato correttamente il token di prova dell'origine alle voci memorizzate nella cache del file 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:

Interfaccia about://appcache-internals che mostra un token riconosciuto.

Test prima della rimozione

Ti consigliamo vivamente di uscire da AppCache il prima possibile. Se vuoi testare la rimozione di AppCache dalle 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, 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 parte delle 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 casi più complessi, librerie come Workbox offrono 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 in 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 ai service worker una volta alla volta. Sarebbe un errore eseguire il deployment di un service worker che contenga 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 che devi eseguire il rollback alla precedente implementazione di AppCache, devi assicurarti di annullare la registrazione di quel service worker. Finché è presente un service worker registrato nell'ambito di una determinata pagina, non verrà utilizzato AppCache.

La storia multipiattaforma

Ti invitiamo a contattare un fornitore di browser specifico se desideri maggiori informazioni sui suoi piani per la rimozione di AppCache.

Firefox su tutte le piattaforme

Firefox ha ritirato AppCache nella versione 44 (settembre 2015) e ne ha rimosso il supporto 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 di rimozione di AppCache di Chrome non copre la disponibilità di AppCache su Chrome per iOS. Tieni presente questo aspetto se sai che la tua app web ha un vasto pubblico di Chrome per iOS.

Android WebView

Alcuni sviluppatori di app per Android utilizzano Chrome WebView per visualizzare contenuti web e potrebbero anche utilizzare 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 il 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, Immagine n. MNH-4477.