Entfernen von AppCache vorbereiten

In Chrome 85 wird die Unterstützung für AppCache standardmäßig eingestellt. Die meisten Entwickler sollten jetzt aus dem AppCache migrieren und nicht länger warten.

Wie in früheren Ankündigungen angekündigt, wird die Unterstützung für AppCache aus Chrome und anderen Chromium-basierten Browsern entfernt. Wir empfehlen Entwicklern, jetzt weg von AppCache zu migrieren, anstatt länger zu warten.

Service Worker die von aktuellen Browsern häufig unterstützt werden, bieten eine Alternative zur Offline-Bereitstellung die AppCache bietet. Siehe Migrationsstrategien.

Zeitachse

Aufgrund von kürzlich erfolgten Änderungen am Veröffentlichungszeitplan für Chrome kann der Zeitpunkt einiger dieser Schritte variieren. Wir werden versuchen, diesen Zeitplan auf dem neuesten Stand zu halten. An dieser Stelle empfehlen wir Ihnen, so bald wie möglich eine Migration aus dem AppCache zu beenden, anstatt auf bestimmte Meilensteine zu warten.

Ein „Veraltet“ Die Funktion ist weiterhin vorhanden, protokolliert jedoch Warnmeldungen, die von der Verwendung abraten. Ein „entfernt“ nicht mehr im Browser vorhanden.

Einstellung in nicht sicheren Kontexten Chrome 50 (April 2016)
Entfernung aus nicht sicheren Kontexten Chrome 70 (Oktober 2018)
Einstellung im sicheren Kontext Chrome 79 (Dezember 2019)
Einschränkung des AppCache-Bereichs Chrome 80 (Februar 2020)
„Umkehren“ Ursprungstest beginnt Chrome 84 (Juli 2020)
Entfernung aus sicheren Kontexten, mit Ausnahme derjenigen, die am Ursprungstest angemeldet sind Chrome 85 (August 2020)
Vollständige Entfernung aus sicheren Kontexten für alle Nutzer mit Abschluss des Ursprungstests 5. Oktober 2021 (etwa Chrome 95)

Ursprungstest

In der Zeitachse sind zwei Meilensteine für die Entfernung aufgeführt. Ab Chrome 85 ist AppCache nicht mehr standardmäßig in Chrome verfügbar. Entwickler, die mehr Zeit für die Migration aus dem AppCache benötigen, können sich für eine „Reverse-Migration“ registrieren. Ursprungstest, um die Verfügbarkeit von AppCache für ihre Web-Apps zu erweitern. Der Ursprungstest beginnt in Chrome 84 (vor der standardmäßigen Entfernung in Chrome 85) und ist bis zum 5. Oktober 2021 (etwa Chrome 95) aktiv. AppCache wird dann für alle Nutzer vollständig entfernt, auch für Nutzer, die sich für den Ursprungstest registriert hatten.

Um an der „Reverse“-Methode Ursprungstest:

  1. Fordern Sie ein Token für Ihren Ursprung an.
  2. Fügen Sie das Token zu Ihren HTML-Seiten hinzu. Dafür gibt es zwei Möglichkeiten: <ph type="x-smartling-placeholder">
      </ph>
    • Fügen Sie im Header jeder Seite ein origin-trial-<meta>-Tag ein. Beispiel: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
    • Alternativ kannst du deinen Server so konfigurieren, dass er Antworten zurückgibt, die den HTTP-Header Origin-Trial enthalten. Der resultierende Antwortheader sollte in etwa so aussehen: Origin-Trial: TOKEN_GOES_HERE
  3. Fügen Sie das gleiche Token zu Ihren AppCache-Manifesten hinzu. Verwenden Sie dazu ein neues Feld in Ihrem Manifest mit folgendem Format:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(Zwischen ORIGIN-TRIAL und Ihrem Token muss eine neue Zeile vorhanden sein.)

Unten sehen Sie ein eingebettetes Beispielprojekt, das zeigt, wie die richtigen Tokens für den Ursprungstest in die Dateien index.html und manifest.appcache eingefügt werden.

Warum werden Tokens an mehreren Stellen benötigt?

Das Same-Origin-Test-Token muss verknüpft werden mit:

  • Alle HTML-Seiten, die AppCache verwenden.
  • Alle Ihre AppCache-Manifeste über das Manifestfeld ORIGIN-TRIAL.

Wenn Sie in der Vergangenheit an Ursprungstests teilgenommen haben, haben Sie das Token möglicherweise nur Ihren HTML-Seiten hinzugefügt. Die Umkehrung von AppCache Der Ursprungstest ist insofern etwas Besonderes, als Sie auch mit jedem Ihrer AppCache-Manifeste ein Token verknüpfen müssen.

Wenn Sie Ihren HTML-Seiten das Ursprungstesttoken hinzufügen, wird die window.applicationCache-Schnittstelle in Ihren Web-Apps aktiviert. Seiten, die nicht mit einem Token verknüpft sind, können keine window.applicationCache-Methoden und -Ereignisse verwenden. Seiten ohne Token können auch keine Ressourcen aus dem AppCache laden. Ab Chrome 85 verhalten sie sich so, als wäre AppCache nicht vorhanden.

Wenn Sie das Token für den Ursprungstest Ihren AppCache-Manifesten hinzufügen, ist jedes Manifest noch gültig. Ab Chrome 85 werden alle Manifeste, die kein ORIGIN-TRIAL-Feld haben, als fehlerhaft behandelt und die Regeln im Manifest werden ignoriert.

Bereitstellungszeit des Ursprungstests und Logistik

Während die „Reverse“-Methode Der Ursprungstest beginnt offiziell mit Chrome 84. Du kannst dich noch heute für den Ursprungstest registrieren und die Tokens deinem HTML- und AppCache-Manifest hinzufügen. Wenn die Zielgruppe Ihrer Webanwendung schrittweise auf Chrome 84 aktualisiert wird, werden alle bereits hinzugefügten Tokens wirksam.

Nachdem Sie Ihrem AppCache-Manifest ein Token hinzugefügt haben, rufen Sie about://appcache-internals auf, um zu prüfen, ob Ihre lokale Instanz von Chrome (Version 84 oder höher) das Token für den Ursprungstest ordnungsgemäß mit den im Cache gespeicherten Einträgen Ihres Manifests verknüpft hat. Wenn Ihr Ursprungstest erkannt wird, sollte auf dieser Seite ein Feld mit Token Expires: Tue Apr 06 2021... angezeigt werden, das mit Ihrem Manifest verknüpft ist:

about://appcache-internals-Schnittstelle mit einem erkannten Token.

Vor dem Entfernen testen

Wir empfehlen Ihnen dringend, so schnell wie möglich eine Migration aus AppCache zu beenden. Wenn Sie das Entfernen von AppCache in Ihren Webanwendungen testen möchten, verwenden Sie das Flag about://flags/#app-cache, um das Entfernen zu simulieren. Dieses Flag ist ab Chrome 84 verfügbar.

Migrationsstrategien

Service Worker werden in den aktuellen Browsern allgemein unterstützt und bieten eine Alternative zur Offlineumgebung von AppCache.

Wir haben einen Polyfill bereitgestellt, der einen Service Worker verwendet, um einige Funktionen von AppCache zu replizieren. Dabei wird jedoch nicht die gesamte AppCache-Schnittstelle repliziert. Insbesondere bietet es keinen Ersatz für die window.applicationCache-Schnittstelle oder die zugehörigen AppCache-Ereignisse.

Für komplexere Fälle bieten Bibliotheken wie Workbox eine einfache Möglichkeit, einen modernen Service Worker für Ihre Webanwendung zu erstellen.

Service Worker und AppCache schließen sich gegenseitig aus

Beachten Sie bei der Ausarbeitung Ihrer Migrationsstrategie, dass Chrome die AppCache-Funktion auf jeder Seite deaktiviert, die unter der Kontrolle eines Service Workers geladen wird. Sobald Sie also einen Service Worker bereitstellen, der eine bestimmte Seite steuert, können Sie AppCache auf dieser Seite nicht mehr verwenden.

Daher empfehlen wir, nicht Stück für Stück zu Service Worker zu migrieren. Es wäre ein Fehler, einen Service Worker bereitzustellen, der nur einen Teil Ihrer Caching-Logik enthält. Sie können nicht auf den AppCache zurückgreifen, um die Lücken zu schließen.

Wenn Sie vor dem Entfernen von AppCache einen Service Worker bereitstellen und dann feststellen, dass Sie ein Rollback zu Ihrer vorherigen AppCache-Implementierung durchführen müssen, müssen Sie die Registrierung dieses Service Workers aufheben. Solange für eine bestimmte Seite ein registrierter Service Worker vorhanden ist, wird AppCache nicht verwendet.

Die plattformübergreifende Story

Wir empfehlen Ihnen, sich an einen bestimmten Browseranbieter zu wenden, wenn Sie mehr über dessen Pläne zur Entfernung von AppCache erfahren möchten.

Firefox auf allen Plattformen

In Firefox wurde AppCache in Version 44 (September 2015) eingestellt. Die Unterstützung dafür wurde in den Beta- und Nightly-Builds seit September 2019 nicht mehr unterstützt.

Safari unter iOS und macOS

Safari wurde Anfang 2018 eingestellt.

Chrome unter iOS

Chrome für iOS ist ein Sonderfall, da eine andere Browser-Engine als Chrome auf anderen Plattformen verwendet wird: WKWebView. Service Worker werden derzeit in iOS-Apps mit WKWebView nicht unterstützt und die Mitteilung zur Entfernung von AppCache von Chrome deckt nicht die Verfügbarkeit von AppCache in Chrome für iOS ab. Beachten Sie dies, wenn Sie wissen, dass Ihre Webanwendung von vielen Nutzern von Chrome für iOS genutzt wird.

Android WebViews

Einige Entwickler von Android-Apps verwenden Chrome WebView, um Webinhalte anzuzeigen, und möglicherweise auch AppCache. Es ist jedoch nicht möglich, einen Ursprungstest für ein WebView zu aktivieren. Aus diesem Grund unterstützt Chrome WebView AppCache ohne Ursprungstest, bis die endgültige Entfernung erfolgt, wie in Chrome 90 erwartet.

Weitere Informationen

Im Folgenden finden Sie einige Ressourcen für Entwickler, die von AppCache zu Service Workern migrieren.

Artikel

Tools

Hilfe erhalten

Wenn bei einem bestimmten Tool ein Problem auftritt, öffnen Sie es im zugehörigen GitHub-Repository.

Auf Stack Overflow können Sie eine allgemeine Frage zur Migration aus dem AppCache stellen. Verwenden Sie dazu das Tag html5-appcache.

Falls Sie auf einen Fehler im Zusammenhang mit der Entfernung von AppCache in Chrome stoßen, melden Sie ihn bitte über die Chromium-Problemverfolgung.

Hero-Image basierend auf Smithsonian Institution Archives, Acc. 11-007, Box 020, Bildnr. MNH-4477.