Chrome w wersji 85 domyślnie usuwa obsługę AppCache. Większość deweloperów powinna już teraz zrezygnować z AppCache i nie czekać dłużej.
W nawiązaniu do poprzednich ogłoszeń wycofamy obsługę AppCache w Chrome i innych przeglądarkach opartych na Chromium. Zachęcamy deweloperów do jak najszybszego przejścia na nową wersję, zamiast czekać.
Skrypty service worker, które są powszechnie obsługiwane w obecnych przeglądarkach, stanowią alternatywę dla funkcji AppCache, która umożliwiała korzystanie z aplikacji w trybie offline. Zobacz Strategie migracji.
Oś czasu
Ostatnie zmiany w harmonogramie wydawania Chrome oznaczają, że czas trwania niektórych z tych etapów może się różnić. Staramy się aktualizować ten harmonogram, ale na tym etapie zalecamy jak najszybsze przejście z AppCache, zamiast czekać na określone etapy.
Funkcja „wycofana” nadal istnieje, ale w logach pojawiają się komunikaty ostrzegawcze zniechęcające do jej używania. Usunięta funkcja nie jest już dostępna w przeglądarce.
Wycofanie w niezabezpieczonych kontekstach | Chrome 50 (kwiecień 2016 r.) |
Usunięcie z niezabezpieczonych kontekstów | Chrome 70 (październik 2018 r.) |
Wycofanie w bezpiecznych kontekstach | Chrome 79 (grudzień 2019) |
Ograniczenie zakresu AppCache | Chrome 80 (luty 2020 r.) |
Rozpoczyna się testowanie „odwrotne” | Chrome 84 (lipiec 2020 r.) |
Usunięcie z zabezpieczonych kontekstów, z wyjątkiem tych, które biorą udział w testowaniu origin | Chrome 85 (sierpień 2020 r.) |
Całkowite usunięcie z bezpiecznych kontekstów dla wszystkich użytkowników po zakończeniu testowania origin | 5 października 2021 r. (w przybliżeniu Chrome 95) |
Wersja próbna origin
Na osi czasu znajdują się 2 najbliższe etapy usuwania. Od Chrome w wersji 85 pamięć podręczna aplikacji nie będzie już domyślnie dostępna w Chrome. Deweloperzy, którzy potrzebują więcej czasu na migrację z AppCache, mogą zarejestrować się w ramach „odwrotnego” eksperymentu z źródłem, aby przedłużyć dostępność AppCache w swoich aplikacjach internetowych. Okres próbny rozpocznie się w Chrome 84 (przed domyślnym usunięciem w Chrome 85) i będzie trwać do 5 października 2021 r. (mniej więcej do Chrome 95). W tym momencie AppCache zostanie całkowicie usunięty u wszystkich użytkowników, nawet tych, którzy zarejestrowali się w ramach testu źródła.
Aby wziąć udział w „odwrotnym” testowaniu origin:
- Poproś o token dla swojego źródła.
- Dodaj token do stron HTML. Możesz to zrobić na 2 sposoby:
- Dodaj tag
origin-trial
<meta>
do sekcji head każdej strony. Na przykład:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
- Możesz też skonfigurować serwer tak, aby zwracał odpowiedzi zawierające nagłówek HTTP
Origin-Trial
. Wynikowy nagłówek odpowiedzi powinien wyglądać mniej więcej tak:Origin-Trial: TOKEN_GOES_HERE
- Dodaj tag
- Dodaj ten sam token do plików manifestu AppCache. Zrób to za pomocą nowego pola w pliku manifestu w tym formacie:
ORIGIN-TRIAL:
TOKEN_GOES_HERE
(Między ORIGIN-TRIAL
a tokenem musi być nowy wiersz).
Dlaczego tokeny są potrzebne w wielu miejscach?
Ten sam token testu pochodzenia musi być powiązany z:
- Wszystkie strony HTML, które korzystają z AppCache.
- Wszystkie pliki manifestu AppCache za pomocą pola
ORIGIN-TRIAL
manifest.
Jeśli w przeszłości brałeś(-aś) udział w eksperymentach z funkcjami, być może token został dodany tylko do stron HTML. Testowanie „odwrotnego” AppCache jest wyjątkowe, ponieważ musisz powiązać token z każdym manifestem AppCache.
Dodanie tokena testu źródła do stron HTML umożliwia korzystanie z interfejsu window.applicationCache
w aplikacjach internetowych. Strony, które nie są powiązane z tokenem, nie będą mogły używać metod i zdarzeń window.applicationCache
. Strony bez tokena nie będą też mogły wczytywać zasobów z pamięci podręcznej aplikacji. Od Chrome w wersji 85 będą się one zachowywać tak, jakby pamięć podręczna aplikacji nie istniała.
Dodanie tokena testu pochodzenia do plików manifestu AppCache oznacza, że każdy plik manifestu jest nadal ważny. Od Chrome 85 wszystkie pliki manifestu, które nie mają pola ORIGIN-TRIAL
, będą traktowane jako nieprawidłowe, a reguły w nich zawarte będą ignorowane.
Czas i logistyka wdrażania wersji próbnej
Chociaż „odwrotny” okres próbny oficjalnie rozpoczyna się w Chrome 84, możesz zarejestrować się w nim już dziś i dodać tokeny do plików HTML i manifestów AppCache. Gdy użytkownicy Twojej aplikacji internetowej stopniowo przejdą na Chrome 84, zaczną obowiązywać wszystkie dodane przez Ciebie tokeny.
Po dodaniu tokena do pliku manifestu AppCache otwórz stronę about://appcache-internals
, aby sprawdzić, czy lokalna instancja Chrome (wersja 84 lub nowsza) prawidłowo powiązała token testu pochodzenia z zapisanymi w pamięci podręcznej wpisami pliku manifestu. Jeśli Twoja wersja próbna jest rozpoznawana, na tej stronie powinna być widoczna wartość Token Expires: Tue Apr 06 2021...
powiązana z manifestem:

Testowanie przed usunięciem
Zachęcamy do jak najszybszego zaprzestania korzystania z AppCache. Jeśli chcesz przetestować usunięcie AppCache w aplikacjach internetowych, użyj about://flags/#app-cache
flagi, aby zasymulować to usunięcie. Ta flaga jest dostępna od Chrome 84.
Strategie migracji
Skrypty service worker, które są szeroko obsługiwane w obecnych przeglądarkach, stanowią alternatywę dla funkcji AppCache, która zapewnia działanie offline.
Udostępniliśmy polyfill, który używa service workera do odtwarzania niektórych funkcji AppCache, ale nie odtwarza całego interfejsu AppCache. W szczególności nie zastępuje interfejsu window.applicationCache
ani powiązanych z nim zdarzeń AppCache.
W bardziej złożonych przypadkach biblioteki takie jak Workbox ułatwiają tworzenie nowoczesnego skryptu service worker dla aplikacji internetowej.
Service worker i AppCache wykluczają się nawzajem
Podczas opracowywania strategii migracji pamiętaj, że Chrome wyłączy funkcję AppCache na każdej stronie, która jest wczytywana pod kontrolą skryptu service worker. Innymi słowy, gdy tylko wdrożysz skrypt service worker, który steruje daną stroną, nie możesz już używać na niej AppCache.
Z tego powodu zalecamy, aby nie próbować przenosić się do service workerów stopniowo. Wdrożenie instancji roboczej usługi, która zawiera tylko część logiki buforowania, byłoby błędem. Nie możesz używać AppCache do „wypełniania luk”.
Podobnie, jeśli wdrożysz service worker przed usunięciem AppCache, a potem okaże się, że musisz wrócić do poprzedniej implementacji AppCache, musisz wyrejestrować tego service worker. Jeśli w zakresie danej strony jest zarejestrowany skrypt service worker, AppCache nie będzie używany.
Historia wieloplatformowości
Jeśli chcesz uzyskać więcej informacji o planach dotyczących usunięcia AppCache, skontaktuj się z konkretnym dostawcą przeglądarki.
Firefox na wszystkich platformach
Firefox wycofał AppCache w wersji 44 (wrzesień 2015 r.), a we wrześniu 2019 r. usunął obsługę tej funkcji w wersjach beta i Nightly.
Safari na iOS i macOS
Safari wycofała AppCache na początku 2018 roku.
Chrome na system iOS
Chrome na iOS to szczególny przypadek, ponieważ używa innego silnika przeglądarki niż Chrome na innych platformach – WKWebView. Obecnie w aplikacjach na iOS korzystających z WKWebView nie są obsługiwane elementy service worker, a ogłoszenie o usunięciu pamięci podręcznej aplikacji w Chrome nie obejmuje dostępności pamięci podręcznej aplikacji w Chrome na iOS. Pamiętaj o tym, jeśli wiesz, że Twoja aplikacja internetowa ma wielu użytkowników Chrome na iOS.
Android WebView
Niektórzy deweloperzy aplikacji na Androida używają komponentu WebView w Chrome do wyświetlania treści z internetu. Mogą też korzystać z pamięci podręcznej aplikacji. Nie można jednak włączyć wersji próbnej interfejsu API w komponencie WebView. W związku z tym komponent WebView Chrome będzie obsługiwać pamięć podręczną aplikacji bez okresu próbnego do czasu ostatecznego usunięcia tej funkcji, co jest planowane w Chrome 90.
Więcej informacji
Oto kilka materiałów dla programistów, którzy przechodzą z AppCache na service worker.
Artykuły
- Skrypty Service Worker: wprowadzenie
- Cykl życia Service Workera
- Szkolenie dotyczące progresywnych aplikacji internetowych
- Niezawodność sieci
Narzędzia
Uzyskiwanie pomocy
Jeśli podczas korzystania z określonego narzędzia napotkasz problem, otwórz zgłoszenie w jego repozytorium GitHub.
Ogólne pytanie dotyczące migracji z AppCache możesz zadać na stronie Stack Overflow, używając tagu html5-appcache
.
Jeśli napotkasz błąd związany z usunięciem AppCache w Chrome, zgłoś go za pomocą narzędzia do śledzenia problemów w Chromium.
Baner powitalny na podstawie Smithsonian Institution Archives, Acc. 11-007, Box 020, Image No. MNH-4477.