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 ogłoszeniami obsługa AppCache zostanie usunięta w Chrome i innych przeglądarkach opartych na Chromium. Zachęcamy deweloperów do migracji z pamięci podręcznej aplikacji już teraz, zamiast czekania dłużej.

Skrypty service worker, które są powszechnie obsługiwane przez obecne przeglądarki, stanowią alternatywę dla udostępniania w trybie offline oferowane przez AppCache. Zobacz Strategie migracji.

Oś czasu

Najnowsze zmiany w harmonogramie wersji Chrome oznaczają, że wykonanie niektórych czynności może być różne. Postaramy się, aby ta oś czasu była aktualna, ale na tym etapie zalecamy jak najszybsze przeprowadzenie migracji z AppCache, zamiast czekania na konkretne etapy.

„Wycofane” wciąż istnieje, ale rejestrowane są komunikaty ostrzegawcze zniechęcające do używania. „Usunięta” funkcja nie jest już dostępna w przeglądarce.

Wycofywanie treści w niezabezpieczonych kontekstach Chrome 50 (kwiecień 2016 r.)
Usuwanie z niezabezpieczonych kontekstów Chrome 70 (październik 2018 r.)
Wycofywanie w bezpiecznych kontekstach Chrome 79 (grudzień 2019 r.)
Ograniczenie zakresu pamięci podręcznej aplikacji Chrome 80 (luty 2020 r.)
„Odwróć” rozpoczyna się okres próbny origin 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 roku (ok. Chrome 95)

Wersja próbna origin

Oś czasu przedstawia 2 zbliżające się kamienie milowe do usunięcia. Od wersji Chrome 85 usługa AppCache nie będzie już domyślnie dostępna w Chrome. Deweloperzy, którzy potrzebują więcej czasu na migrację z pamięci podręcznej AppCache, mogą zarejestrować się w celu wycofania zmian. origin próbny, aby zwiększyć 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 usługa AppCache zostanie całkowicie usunięta dla wszystkich użytkowników, nawet tych, którzy zarejestrowali się w związku z testowaniem origin.

Aby wziąć udział w „rewersie” testowanie origin:

  1. Poproś o token dla punktu początkowego.
  2. Dodaj token do stron HTML. Możesz to zrobić na 2 sposoby:
    • Dodaj tag origin-trial <meta> w nagłówku 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. Otrzymany 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 w nowym polu w pliku manifestu w formacie:
ORIGIN-TRIAL:
TOKEN_GOES_HERE

Między ORIGIN-TRIAL a Twoim tokenem musi występować nowy wiersz.

Poniżej znajduje się przykładowy projekt, który pokazuje dodawanie prawidłowych tokenów wersji próbnej origin do plików index.html i manifest.appcache.

Dlaczego potrzebne są tokeny w wielu miejscach?

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

  • Wszystkie strony HTML korzystające z AppCache.
  • Wszystkie pliki manifestu AppCache za pomocą pola pliku manifestu ORIGIN-TRIAL.

Jeśli zdarzyło Ci się już korzystać z testów origin, być może zdarzyło Ci się dodać token tylko do swoich stron HTML. Wycofanie pamięci podręcznej aplikacji Wersja próbna origin jest wyjątkowa, ponieważ musisz powiązać token z każdym plikiem manifestu AppCache.

Dodanie tokena próbnego originu do stron HTML włącza interfejs window.applicationCache z poziomu Twoich aplikacji internetowych. Strony, które nie są powiązane z tokenem, nie będą mogły używać metod ani zdarzeń window.applicationCache. Strony bez tokena nie będą też mogły wczytywać zasobów z AppCache. Począwszy od Chrome 85, będą one działać tak, jakby nie było AppCache.

Dodanie tokena próbnego origin 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 uszkodzone, a reguły w tym pliku będą ignorowane.

Czas i logistyka wdrożenia wersji próbnej origin

„Odwrotność” Okres próbny origin zaczyna się oficjalnie od Chrome 84. Już dziś możesz zarejestrować się w jego wersji i dodać tokeny do plików manifestu HTML i AppCache. W miarę jak użytkownicy Twojej aplikacji internetowej będą stopniowo przechodzić na Chrome 84, wszystkie dodane przez Ciebie tokeny zaczną obowiązywać.

Gdy dodasz token do pliku manifestu AppCache, otwórz about://appcache-internals, aby sprawdzić, czy lokalna instancja Chrome (w wersji 84 lub nowszej) prawidłowo skojarzyła token wersji próbnej z wpisami pliku manifestu 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 widocznym rozpoznanym tokenem.

Testowanie przed usunięciem

Zdecydowanie zalecamy jak najszybsze przeprowadzenie migracji z AppCache. Jeśli chcesz przetestować usunięcie pamięci podręcznej aplikacji internetowych z Twoich aplikacji internetowych, użyj flagi about://flags/#app-cache, aby przeprowadzić symulację usunięcia. Ta flaga jest dostępna od Chrome 84.

Strategie migracji

Skrypty service worker, które są powszechnie obsługiwane przez obecne przeglądarki, stanowią alternatywę dla środowiska offline zapewnianego przez AppCache.

Udostępniliśmy kod polyfill, który wykorzystuje mechanizm Service Worker do replikowania niektórych funkcji AppCache, ale nie replikuje całego interfejsu AppCache. W szczególności nie zastępuje on interfejsu window.applicationCache ani powiązanych zdarzeń AppCache.

W bardziej złożonych przypadkach biblioteki takie jak Workbox ułatwiają utworzenie nowoczesnego mechanizmu Service Worker dla aplikacji internetowej.

Skrypty service worker i pamięć podręczna aplikacji wzajemnie się wykluczają

Podczas pracy nad strategią migracji pamiętaj, że Chrome wyłączy funkcję AppCache na wszystkich stronach wczytywanych pod kontrolą skryptu service worker. Innymi słowy, gdy tylko wdrożysz skrypt service worker, który kontroluje daną stronę, nie możesz już używać na niej AppCache.

Z tego powodu odradzamy podejmowanie prób pojedynczej migracji do mechanizmów Service Worker jeden po drugim. Wdrożenie skryptu service worker, który zawiera tylko część logiki buforowania, byłoby błędem. Nie można użyć pamięci podręcznej AppCache, aby „wypełnić luki”.

Podobnie, jeśli przed usunięciem AppCache wdrożysz skrypt service worker, a potem stwierdzisz, że musisz przywrócić poprzednią implementację AppCache, musisz go wyrejestrować. Dopóki w zakresie danej strony istnieje zarejestrowany skrypt service worker, pamięć podręczna aplikacji nie będzie używana.

Historia na wielu platformach

Zachęcamy do skontaktowania się z dostawcą przeglądarek, aby uzyskać więcej informacji na temat planów usunięcia pamięci podręcznej aplikacji.

Firefox na wszystkich platformach

W wersji 44 (wrzesień 2015 r.) Firefox wycofał pamięć podręczną AppCache, a we wrześniu 2019 r. wycofaliśmy jej obsługę w wersjach Beta i Nightly.

Safari na iOS i macOS

Na początku 2018 roku przeglądarka Safari wycofała pamięć podręczną AppCache.

Chrome na system iOS

Chrome na iOS jest szczególnym przypadkiem, ponieważ korzysta z innego silnika przeglądarki niż Chrome na pozostałych platformach: komponentu WKWebView. Skrypty service worker nie są obecnie obsługiwane w aplikacjach na iOS korzystających z WKWebView. Ogłoszenie o usunięciu AppCache w Chrome nie obejmuje dostępności AppCache w Chrome na iOS. Pamiętaj o tym, jeśli wiesz, że Twoja aplikacja internetowa jest popularna wśród użytkowników Chrome na iOS.

Komponenty WebView Androida

Niektórzy programiści aplikacji na Androida używają też komponentu WebView w Chrome do wyświetlania treści z internetu. Mogą też używać 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 przy użyciu konkretnego narzędzia, otwórz problem w jego repozytorium GitHub.

Ogólne pytanie na temat 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 pamięci podręcznej aplikacji Chrome, zgłoś go za pomocą narzędzia do śledzenia problemów w Chromium.

Baner powitalny na podstawie archiwum Smithsonian Institution Archives, Acc. 11-007, Box 020, nr zdjęcia MNH-4477.