В Chrome 85 по умолчанию удалена поддержка AppCache. Большинству разработчиков следует отказаться от AppCache сейчас и не ждать больше.
Вслед за предыдущими объявлениями поддержка AppCache будет удалена из Chrome и других браузеров на базе Chromium. Мы призываем разработчиков отказаться от AppCache прямо сейчас, а не ждать больше.
Сервисные работники , которые широко поддерживаются в современных браузерах, предлагают альтернативу автономному режиму, который предлагал AppCache. См. Стратегии миграции .
Хронология
Недавние изменения в графике выпуска Chrome означают, что сроки выполнения некоторых из этих шагов могут измениться. Мы постараемся поддерживать этот график в актуальном состоянии, но на данном этапе, пожалуйста, отключите AppCache как можно скорее, вместо того, чтобы ждать конкретных этапов.
«Устаревшая» функция все еще существует, но в журнале регистрируются предупреждающие сообщения, препятствующие использованию. «Удаленная» функция больше не существует в браузере.
Устаревание в незащищенных контекстах | Chrome 50 (апрель 2016 г.) |
Удаление из незащищенных контекстов | Chrome 70 (октябрь 2018 г.) |
Устаревание в безопасных контекстах | Chrome 79 (декабрь 2019 г.) |
Ограничение области AppCache | Chrome 80 (февраль 2020 г.) |
Начинается испытание «обратного» происхождения | Chrome 84 (июль 2020 г.) |
Удаление из безопасных контекстов , за исключением тех, которые согласились на пробную версию источника. | Chrome 85 (август 2020 г.) |
Полное удаление из безопасного контекста для всех с завершением пробной версии источника. | 5 октября 2021 г. (примерно Chrome 95) |
Исходная пробная версия
На временной шкале перечислены два предстоящих этапа удаления. Начиная с Chrome 85, AppCache больше не будет доступен в Chrome по умолчанию. Разработчики, которым требуется дополнительное время для перехода с AppCache, могут подписаться на пробную версию «обратного» происхождения , чтобы расширить доступность AppCache для своих веб-приложений. Пробная версия Origin начнется в Chrome 84 (до удаления по умолчанию в Chrome 85) и будет активна до 5 октября 2021 г. (примерно Chrome 95). На этом этапе AppCache будет полностью удален для всех, даже для тех, кто подписался на пробную версию Origin.
Чтобы принять участие в испытании «обратного» происхождения:
- Запросите токен для вашего происхождения.
- Добавьте токен на свои HTML-страницы. Есть два способа сделать это:
- Добавьте тег
<meta>
origin-trial
в заголовок каждой страницы. Например:<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
- Альтернативно настройте свой сервер на возврат ответов, содержащих HTTP-заголовок
Origin-Trial
. Результирующий заголовок ответа должен выглядеть примерно так:Origin-Trial: TOKEN_GOES_HERE
- Добавьте тег
- Добавьте тот же токен в манифесты AppCache. Сделайте это через новое поле в вашем манифесте в формате:
ORIGIN-TRIAL:
TOKEN_GOES_HERE
(Между ORIGIN-TRIAL
и вашим токеном должна быть новая строка.)
Ниже вы можете увидеть встроенный пример проекта, который демонстрирует добавление правильных пробных токенов происхождения в файлы index.html
и manifest.appcache
.
Почему токены нужны в нескольких местах?
Один и тот же пробный токен происхождения должен быть связан с:
- Все ваши HTML-страницы , использующие AppCache.
- Все ваши манифесты AppCache отображаются через поле манифеста
ORIGIN-TRIAL
.
Если вы раньше участвовали в испытаниях источников, возможно, вы добавили токен только на свои HTML-страницы. Пробная версия AppCache с обратным происхождением отличается тем, что вам также необходимо связать токен с каждым из ваших манифестов AppCache.
Добавление пробного токена источника на ваши HTML-страницы позволяет использовать интерфейс window.applicationCache
в ваших веб-приложениях. Страницы, не связанные с токеном, не смогут использовать методы и события window.applicationCache
. Страницы без токена также не смогут загружать ресурсы из AppCache. Начиная с Chrome 85, они будут вести себя так, как будто AppCache не существует.
Добавление пробного токена источника в манифесты AppCache означает, что каждый манифест по-прежнему действителен. Начиная с Chrome 85, любые манифесты, в которых нет поля ORIGIN-TRIAL
будут считаться неверными, а правила в манифесте будут игнорироваться.
Сроки и логистика пробного развертывания Origin
Хотя «обратная» пробная версия Origin официально начинается с Chrome 84, вы можете подписаться на пробную версию Origin сегодня и добавить токены в свои манифесты HTML и AppCache. По мере постепенного перехода аудитории вашего веб-приложения на Chrome 84 все добавленные вами токены вступят в силу.
Добавив токен в манифест AppCache, посетите about://appcache-internals
, чтобы убедиться, что ваш локальный экземпляр Chrome (версия 84 или более поздняя) правильно связал пробный токен источника с кэшированными записями вашего манифеста. Если ваша исходная пробная версия распознана, вы должны увидеть поле с Token Expires: Tue Apr 06 2021...
на этой странице, связанное с вашим манифестом:
Тестирование перед удалением
Мы настоятельно рекомендуем вам перейти с AppCache, как только это станет возможным. Если вы хотите протестировать удаление AppCache в своих веб-приложениях, используйте флаг about://flags/#app-cache
чтобы имитировать его удаление. Этот флаг доступен начиная с Chrome 84.
Стратегии миграции
Сервисные работники, которые широко поддерживаются в современных браузерах , предлагают альтернативу автономному режиму, предоставляемому AppCache.
Мы предоставили полифил , который использует сервис-воркера для репликации некоторых функций AppCache, однако он не копирует весь интерфейс AppCache. В частности, он не обеспечивает замену интерфейса window.applicationCache
или связанных с ним событий AppCache.
В более сложных случаях такие библиотеки, как Workbox, предоставляют простой способ создать современный сервис-воркер для вашего веб-приложения.
Сервис-воркеры и AppCache являются взаимоисключающими.
При разработке стратегии миграции имейте в виду, что Chrome отключит функцию AppCache на любой странице, загружаемой под контролем сервисного работника. Другими словами, как только вы развернете сервис-воркера, который контролирует данную страницу, вы больше не сможете использовать AppCache на этой странице.
По этой причине мы рекомендуем не пытаться поэтапно перейти на Service Workers. Было бы ошибкой развертывать сервис-воркера, который содержит только часть вашей логики кэширования. Вы не можете использовать AppCache, чтобы «заполнить пробелы».
Аналогично, если вы развернули сервис-воркера до удаления AppCache, а затем обнаружите, что вам необходимо вернуться к предыдущей реализации AppCache, вам необходимо убедиться, что вы отменили регистрацию этого сервис-воркера. Пока в области действия данной страницы есть зарегистрированный сервисный работник, AppCache не будет использоваться.
Кроссплатформенная история
Мы рекомендуем вам связаться с конкретным поставщиком браузера, если вам нужна дополнительная информация об его планах по удалению AppCache.
Firefox на всех платформах
Firefox прекратил поддержку AppCache в выпуске 44 (сентябрь 2015 г.) и удалил его поддержку в бета-версиях и ночных сборках по состоянию на сентябрь 2019 г.
Safari на iOS и macOS
Safari прекратил поддержку AppCache в начале 2018 года.
Хром на iOS
Chrome для iOS — это особый случай, поскольку он использует другой движок браузера, чем Chrome на других платформах: WKWebView . В настоящее время сервисные работники не поддерживаются в приложениях iOS, использующих WKWebView, а объявление об удалении AppCache в Chrome не распространяется на доступность AppCache в Chrome для iOS . Имейте это в виду, если знаете, что у вашего веб-приложения значительная аудитория Chrome для iOS.
Веб-представления Android
Некоторые разработчики приложений Android используют Chrome WebView для отображения веб-контента, а также могут использовать AppCache. Однако невозможно включить пробную версию источника для WebView. В свете этого Chrome WebView будет поддерживать AppCache без пробной версии до тех пор, пока не произойдет окончательное удаление, ожидаемое в Chrome 90.
Узнать больше
Вот несколько ресурсов для разработчиков, переходящих с AppCache на сервис-воркеров.
Статьи
- Работники сферы обслуживания: введение
- Жизненный цикл сервисного работника
- Обучение прогрессивным веб-приложениям
- Надежность сети
Инструменты
Получение помощи
Если вы столкнулись с проблемой при использовании определенного инструмента, откройте проблему в его репозитории GitHub.
Вы можете задать общий вопрос о переходе с AppCache на Stack Overflow , используя тег html5-appcache
.
Если вы столкнулись с ошибкой, связанной с удалением AppCache в Chrome, сообщите об этом с помощью системы отслеживания проблем Chromium.
Изображение героя основано на архивах Смитсоновского института, Acc. 11-007, ящик 020, изображение № MNH-4477 .