Entfernen von AppCache vorbereiten

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

Wie bereits 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.

Dienstworker, die in aktuellen Browsern weithin unterstützt werden, bieten eine Alternative zur Bereitstellung der Offlinefunktionen, die AppCache bot. Weitere Informationen finden Sie unter 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. Wir empfehlen Ihnen jedoch, so schnell wie möglich von AppCache zu migrieren, anstatt auf bestimmte Meilensteine zu warten.

Eine „verworfene“ Funktion ist weiterhin vorhanden, protokolliert jedoch Warnmeldungen, von denen die Verwendung abgeraten wird. Eine entfernte Funktion ist im Browser nicht mehr verfügbar.

Einstellung in nicht sicheren Kontexten Chrome 50 (April 2016)
Entfernung aus nicht sicheren Kontexten Chrome 70 (Oktober 2018)
Einstellung in sicheren Kontexten Chrome 79 (Dezember 2019)
AppCache-Begrenzung auf einen Bereich Chrome 80 (Februar 2020)
Test für umgekehrte Herkunft 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 nach Abschluss des Ursprungstests 5. Oktober 2021 (etwa Chrome 95)

Ursprungstest

In der Zeitleiste sind zwei bevorstehende 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 AppCache benötigen, können sich für einen umgekehrten Ursprungstest registrieren, um die Verfügbarkeit von AppCache für ihre Web-Apps zu verlängern. Der Test für Ursprünge beginnt in Chrome 84 (vor der standardmäßigen Entfernung in Chrome 85) und ist bis zum 5. Oktober 2021 (ungefähr Chrome 95) aktiv. Danach wird AppCache vollständig für alle entfernt, auch für Nutzer, die sich für den ursprünglichen Test registriert hatten.

So nehmen Sie am Test für den umgekehrten Ursprung teil:

  1. Fordere ein Token für deinen Ursprung an.
  2. Fügen Sie das Token zu Ihren HTML-Seiten hinzu. Dazu gibt es zwei Möglichkeiten:
    • 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 dasselbe Token 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 dem Token muss eine neue Zeile stehen.

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 sind Tokens an mehreren Stellen erforderlich?

Das Testtoken mit demselben Ursprung muss mit Folgendem verknüpft sein:

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

Wenn Sie bereits an Ursprungstests teilgenommen haben, haben Sie das Token möglicherweise nur Ihren HTML-Seiten hinzugefügt. Der Test für die umgekehrte AppCache-Herkunft ist insofern besonders, als Sie auch jedem AppCache-Manifest ein Token zuordnen müssen.

Wenn Sie Ihren HTML-Seiten das Token für den Test der Herkunft hinzufügen, können Sie die window.applicationCache-Benutzeroberfläche in Ihren Webanwendungen verwenden. Für Seiten, die keinem Token zugeordnet sind, können keine window.applicationCache-Methoden und ‑Ereignisse verwendet werden. 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 Ihren AppCache-Manifesten das Testtoken für den Ursprung hinzufügen, wird damit angezeigt, dass jedes Manifest noch gültig ist. Ab Chrome 85 werden Manifeste ohne ORIGIN-TRIAL-Feld als fehlerhaft behandelt und die Regeln im Manifest werden ignoriert.

Zeitplan und Logistik für die Einführung von Origin-Tests

Der Test für umgekehrte Ursprünge beginnt offiziell mit Chrome 84. Sie können sich aber schon heute für den Test registrieren und die Tokens Ihren HTML- und AppCache-Manifesten hinzufügen. Sobald die Zielgruppe Ihrer Web-App nach und nach auf Chrome 84 umsteigt, 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 Test-Token für den Ursprung korrekt mit den im Cache Ihres Manifests gespeicherten Einträgen verknüpft hat. Wenn dein Test für den Ursprung erkannt wird, sollte auf dieser Seite ein Feld mit Token Expires: Tue Apr 06 2021... angezeigt werden, das mit deinem 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 Web-Apps testen möchten, verwenden Sie das Flag about://flags/#app-cache, um das Entfernen zu simulieren. Dieses Flag ist seit Chrome 84 verfügbar.

Migrationsstrategien

Service Worker, die in den aktuellen Browsern weitgehend unterstützt werden, bieten eine Alternative zur Offlinefunktion von AppCache.

Wir haben eine Polyfill-Lösung bereitgestellt, die mit einem Dienst-Worker einige der Funktionen von AppCache repliziert, aber nicht die gesamte AppCache-Benutzeroberfläche. Insbesondere bietet es keinen Ersatz für die window.applicationCache-Schnittstelle oder die zugehörigen AppCache-Ereignisse.

Bei komplexeren Fällen 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 Entwicklung Ihrer Migrationsstrategie, dass Chrome die AppCache-Funktion auf jeder Seite deaktiviert, die von einem Service Worker gesteuert wird. Sobald Sie also einen Service Worker bereitgestellt haben, der eine bestimmte Seite steuert, können Sie AppCache auf dieser Seite nicht mehr verwenden.

Aus diesem Grund empfehlen wir, nicht nach und nach zu Service Workern 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.

Plattformübergreifende Berichte

Wenn Sie weitere Informationen zu den Plänen eines bestimmten Browseranbieters für die Entfernung von AppCache benötigen, wenden Sie sich bitte an ihn.

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

AppCache wurde Anfang 2018 in Safari eingestellt.

Chrome unter iOS

Chrome für iOS ist ein Sonderfall, da es eine andere Browser-Engine als Chrome auf anderen Plattformen verwendet: WKWebView. Service Worker werden derzeit nicht in iOS-Apps mit WKWebView unterstützt. Die Ankündigung zur Entfernung von AppCache in Chrome bezieht sich nicht auf die Verfügbarkeit von AppCache in Chrome für iOS. Bitte denken Sie daran, wenn Sie wissen, dass Ihre Web-App eine große Chrome for iOS-Zielgruppe hat.

Android WebViews

Einige Entwickler von Android-Apps verwenden Chrome WebView, um Webinhalte anzuzeigen, und möglicherweise auch AppCache. Für eine Webansicht kann jedoch kein Testzeitraum für den Ursprung aktiviert werden. Aus diesem Grund unterstützt Chrome WebView AppCache ohne Ursprungstest, bis die endgültige Entfernung erfolgt, wie in Chrome 90 erwartet.

Weitere Informationen

Hier finden Sie einige Ressourcen für Entwickler, die von AppCache zu Dienst-Workern migrieren.

Artikel

Tools

Hilfe erhalten

Wenn Sie bei der Verwendung eines bestimmten Tools auf ein Problem stoßen, erstellen Sie einen Problemfall im zugehörigen GitHub-Repository.

Sie können in Stack Overflow allgemeine Fragen zur Migration von AppCache stellen. Verwenden Sie dazu das Tag html5-appcache.

Wenn Sie einen Fehler im Zusammenhang mit der Entfernung des AppCache in Chrome feststellen, melden Sie ihn bitte über den Chromium-Fehler-Tracker.

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