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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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