Улучшение обнаружения автономной поддержки Progressive Web App

Пенни Маклахлан
Penny McLachlan

Прогрессивные веб-приложения (PWA) — это шаблон для создания современных устанавливаемых приложений с использованием веб-технологий для мобильных и настольных устройств.

Один из критериев создания современного веб-приложения, и не случайно именно PWA, заключается в том, что приложение должно продолжать работать даже при отсутствии подключения к сети. Это означает отсутствие экрана Chrome Dino, если пользователь потеряет доступ к сети на своём устройстве!

Цель всех критериев PWA — обеспечить пользователям высококачественный, конкурентоспособный опыт работы в Интернете. Chrome проверяет соответствие критериям PWA , прежде чем разрешить установку PWA.

Из Chrome на устройство можно установить только те приложения, которые соответствуют всем основным критериям установки Progressive Web App , включая поддержку автономного режима.

Предыдущая логика автономного обнаружения

Проверка автономной поддержки уже несколько лет является одним из критериев установки PWA. До недавнего времени Chrome не мог имитировать запросы через Service Worker, поэтому полноценная проверка корректного поведения в автономном режиме была невозможна.

Диаграмма сервисного работника

Это означало, что Chrome не мог проверить, вернул ли обработчик событий fetch допустимый ресурс с кодом HTTP 200 во время автономной проверки. Chrome проверял только наличие обработчика fetch у сервис-воркера.

Обновленная логика обнаружения в автономном режиме

В Chrome 89 добавлена ​​возможность запуска имитированных автономных запросов через Service Worker, что позволяет улучшить логику обнаружения автономного режима для лучшего отражения фактической автономной поддержки приложения.

Мы планировали использовать эту новую возможность, чтобы гарантировать, что PWA-приложения будут предоставлять корректную страницу в автономном режиме, но пока отложили эти планы. Проверка на возможность установки будет проходить успешно, если на странице есть сервис-воркер с обработчиком событий fetch .

Что это означает для разработчиков?

Хотя сейчас никаких изменений не требуется , мы настоятельно рекомендуем вам обеспечить возможность автономной работы, поскольку мы планируем использовать обновленную логику для проверки корректности страницы в будущем.

Вы сами решаете, какой тип офлайн-опыта вы хотите обеспечить. С одной стороны, это полнофункциональный офлайн-опыт. Это подразумевает предварительное кэширование всех необходимых ресурсов и данных, а также синхронизацию данных с вашим сервером, когда пользователь снова подключается к сети. Кэширование ресурсов также способствует улучшению основных показателей веб-приложений , поскольку устраняет необходимость каждый раз загружать ресурсы из сети. С другой стороны, это настраиваемая резервная страница для офлайн-приёма .

Предупреждение, отображаемое на вкладке «Проблемы» в инструментах разработчика, будет удалено примерно в версии Chrome 90.