Przygotowanie do usunięcia z pamięci podręcznej aplikacji

Domyślnie Chrome 85 wycofuje obsługę AppCache. Większość programistów powinna już teraz przeprowadzić migrację z pamięci podręcznej aplikacji i nie czekać dłużej.

Zgodnie z poprzednimi zapowiedziami wycofujemy obsługę AppCache z Chrome i innych przeglądarek opartych na Chromium. Zachęcamy deweloperów do jak najszybszego przejścia z AppCache.

Skrypty service worker, które są powszechnie obsługiwane w bieżących przeglądarkach, stanowią alternatywę dla trybu offline oferowanego przez AppCache. Zobacz Strategie migracji.

Ostatnie zmiany w harmonogramie wydawania Chrome powodują, że czas trwania niektórych z tych kroków może się różnić. Będziemy aktualizować ten harmonogram, ale na razie zalecamy jak najszybszą migrację z serwera AppCache zamiast czekania na określone kamienie milowe.

„Wycofana” funkcja nadal istnieje, ale w przypadku jej użycia pojawia się komunikat ostrzegawczy. W przeglądarce nie ma już funkcji „Usunięta”.

Wycofanie z niezabezpieczonych kontekstów Chrome 50 (kwiecień 2016 r.)
Usuwanie z kontekstów niezabezpieczonych Chrome 70 (październik 2018 r.)
Wycofanie z bezpiecznych kontekstów Chrome 79 (grudzień 2019 r.)
Ograniczenie zakresu pamięci podręcznej aplikacji Chrome 80 (luty 2020 r.)
Rozpoczyna się okres próbny „odwrotnej” usługi pochodzenia Chrome 84 (lipiec 2020 r.)
Usuwanie z bezpiecznych kontekstów oprócz użytkowników, którzy wyrazili zgodę na udział w testowaniu origin Chrome 85 (sierpień 2020 r.)
Całkowite usunięcie z bezpiecznych kontekstów dla wszystkich po zakończeniu testowania origin 5 października 2021 r. (około wersji 95 przeglądarki Chrome)

Wersja próbna origin

Na osi czasu widać 2 nadchodzące kamienie milowe usuwania. Od wersji Chrome 85 usługa AppCache nie będzie już domyślnie dostępna w Chrome. Deweloperzy, którzy potrzebują dodatkowego czasu na migrację z AppCache, mogą zarejestrować się w ramach „odwrotnej” wersji próbnej origin, aby przedłużyć dostępność AppCache dla swoich aplikacji internetowych. Testowanie origin rozpocznie się w Chrome 84 (przed domyślnym usunięciem w Chrome 85) i będzie trwać do 5 października 2021 r. (ok. 95). W tym momencie AppCache zostanie całkowicie usunięty u wszystkich użytkowników, nawet tych, którzy zarejestrowali się w ramach wersji próbnej.

Aby wziąć udział w testowaniu „odwrotnej” wersji origin:

  1. Poproś o token dla swojego źródła.
  2. Dodaj token do stron HTML. Możesz to zrobić na 2 sposoby:
    • Dodaj tag origin-trial <meta> do nagłówka każdej strony. 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. Wygenerowany nagłówek odpowiedzi powinien wyglądać mniej więcej tak: Origin-Trial: TOKEN_GOES_HERE
  3. Dodaj ten sam token do plików manifestu AppCache. Zrób to za pomocą nowego pola w pliku manifestu o takim formacie:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

(między ORIGIN-TRIAL a tokenem musi być nowy wiersz).

Poniżej możesz zobaczyć przykładowy projekt, który pokazuje dodawanie prawidłowych tokenów próbnych pochodzenia do plików index.htmlmanifest.appcache.

Dlaczego tokeny są potrzebne w kilku miejscach?

Ten sam token wersji próbnej musi być powiązany z:

  • Wszystkie strony HTML, które korzystają z AppCache.
  • Wszystkie pliki manifestu AppCache za pomocą pola pliku manifestu ORIGIN-TRIAL.

Jeśli w przeszłości brałeś(-aś) udział w testach wersji źródłowej, możesz mieć token dodany tylko do stron HTML. Testowanie wersji „odwrotnej” pochodzenia w AppCache jest wyjątkowe, ponieważ musisz powiązać token z każdym plikiem manifestu AppCache.

Dodanie tokenu próbnego pochodzenia do stron HTML umożliwia korzystanie z interfejsu window.applicationCache w ramach aplikacji internetowych. Strony, które nie są powiązane z tokenem, nie będą mogły korzystać z metod i zdarzeń window.applicationCache. Strony bez tokena nie będą też mogły wczytywać zasobów z pamięci AppCache. Od wersji 85 Chrome będą działać tak, jakby pamięć podręczna aplikacji nie istniała.

Dodanie tokenu wersji próbnej pochodzenia do plików manifestu AppCache wskazuje, że każdy z nich jest nadal ważny. Od wersji 85 przeglądarki Chrome wszystkie pliki manifestu, które nie zawierają pola ORIGIN-TRIAL, będą traktowane jako źle sformatowane, a reguły w nich zawarte będą ignorowane.

Czas i logistyka wdrożenia wersji próbnej origin

Chociaż okres próbny „odwrotnej” wersji origin oficjalnie rozpoczyna się w Chrome 84, już dziś możesz zarejestrować się w programie próbnym i dodać tokeny do plików manifestu HTML i AppCache. Gdy użytkownicy aplikacji internetowej stopniowo przestaną korzystać z Chrome 83 i zaczną używać Chrome 84, zaczną obowiązywać tokeny, które już dodasz.

Po dodaniu tokena do pliku manifestu AppCache otwórz stronę about://appcache-internals, aby sprawdzić, czy lokalny egzemplarz Chrome (wersja 84 lub nowsza) prawidłowo powiązał token wersji próbnej pochodzenia z zapisanymi w pliku manifestu elementami w pamięci podręcznej. Jeśli wersja testowa origin została rozpoznana, na tej stronie powinno pojawić się pole z atrybutem Token Expires: Tue Apr 06 2021... powiązane z Twoim plikiem manifestu:

Interfejs about://appcache-internals z rozpoznanym tokenem

Testowanie przed usunięciem

Zalecamy jak najszybsze przejście z AppCache. Jeśli chcesz przetestować usunięcie AppCache w aplikacjach internetowych, użyj about://flags/#app-cache flagi, aby zasymulować jej usunięcie. Ta flaga jest dostępna od wersji Chrome 84.

Strategie migracji

Skrypty service worker, które są powszechnie obsługiwane w bieżących przeglądarkach, stanowią alternatywę dla trybu offline oferowanego przez AppCache.

Udostępniliśmy polyfill, który używa usługi workera do powielania niektórych funkcji AppCache, ale nie powiela całego interfejsu AppCache. W szczególności nie zastępuje on interfejsu window.applicationCache ani powiązanych zdarzeń AppCache.

W bardziej skomplikowanych przypadkach biblioteki takie jak Workbox ułatwiają tworzenie nowoczesnych skryptów service worker dla aplikacji internetowych.

Usługa i pamięć podręczna aplikacji wzajemnie się wykluczają

Podczas opracowywania strategii migracji pamiętaj, że Chrome wyłączy funkcję AppCache na każdej stronie kontrolowanej przez skrypt service worker. Innymi słowy, gdy tylko wdrożysz skrypt service worker, który steruje daną stroną, nie możesz już na niej używać AppCache.

Z tego powodu odradzamy podejmowanie prób pojedynczej migracji do mechanizmów Service Worker jeden po drugim. Rozgłaszanie workera usługi, który zawiera tylko część logiki buforowania, byłoby błędem. Nie możesz polegać na AppCache, aby „uzupełnić luki”.

Podobnie, jeśli wdrożysz usługę workera przed usunięciem pamięci AppCache, a potem okaże się, że musisz przywrócić poprzednie wdrożenie pamięci AppCache, musisz odrejestrować tę usługę workera. Dopóki w zakresie danej strony znajduje się zarejestrowany skrypt service worker, nie będzie używana pamięć AppCache.

Historia na wielu platformach

Jeśli chcesz dowiedzieć się więcej o planach dostawcy przeglądarki dotyczących usuwania AppCache, skontaktuj się z nim.

Firefox na wszystkich platformach

Firefox wycofał pamięć AppCache w wersji 44 (wrześnień 2015 r.), a od września 2019 r. usuwał jej obsługę z wersji beta i Nightly.

Safari na iOS i macOS

Na początku 2018 r. Safari wycofało AppCache.

Chrome na system iOS

Chrome na iOS to szczególny przypadek, ponieważ korzysta z innego silnika przeglądarki niż Chrome na innych platformach: WKWebView. W aplikacjach na iOS korzystających z WKWebView nie są obecnie obsługiwane elementy Service Worker, a ogłoszenie o usunięciu pamięci podręcznej aplikacji w Chrome nie dotyczy dostępności pamięci podręcznej aplikacji w Chrome na iOS. Pamiętaj o tym, jeśli wiesz, że Twoja aplikacja internetowa ma dużą liczbę użytkowników w Chrome na iOS.

Komponenty WebView Androida

Niektórzy deweloperzy aplikacji na Androida używają komponentu WebView w Chrome do wyświetlania treści z internetu. Mogą też używać pamięci AppCache. Nie można jednak włączyć testowania origin dla WebView. W związku z tym komponent WebView Chrome będzie obsługiwać AppCache bez testowania origin aż do momentu ostatecznego usunięcia treści, co powinno być widoczne w Chrome 90.

Więcej informacji

Oto zasoby dla deweloperów, którzy przechodzą z AppCache na mechanizmy Service Worker.

Artykuły

Narzędzia

Uzyskiwanie pomocy

Jeśli napotkasz problem z korzystaniem z konkretnego narzędzia, otwórz problem w jego repozytorium GitHub.

Możesz zadać ogólne pytanie na temat migracji z AppCache na Stack Overflow, używając tagu html5-appcache.

Jeśli napotkasz błąd związany z usuwaniem pliku AppCache w Chrome, zgłoś go za pomocą narzędzia do śledzenia błędów Chromium.

Baner powitalny na podstawie archiwów Instytutu Smithsona, Acc. 11-007, Box 020, Image No. MNH-4477.