PWA, технология прогрессивных веб-приложений

Прогрессивные веб-приложения призваны выглядеть как локальные приложения, хотя и предоставляются онлайн.

В ноябре 2017 года Google объявила о прекращении работы приложений Chrome (Chrome Apps) и закрытии магазина Chrome Store, который позволял их скачивать.

PWA

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

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

Технологии

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

Веб-сборка

Этот новый язык bytecode позволяет добавлять API в JavaScript, доступные в браузере и созданные на основе C, C++ или других языков. Скорость их выполнения близка к скорости двоичного кода.

Индексировать DB

Возможно, на клиентском компьютере создана база данных с помощью IndexedDB. Она доступна только программе, создающей ее. Она может копировать данные из базы на сервер (но нужно перейти в формат ключ/значение). Он также может содержать код wasm или JS, который будет постоянно храниться на клиентском компьютере (только для этого приложения) и не будет загружаться при каждом новом сеансе.

Веб-рабочие

Сценарии в фоновом режиме можно выполнять асинхронно в Web Worker. Способ сделать приложение более плавным. Он общается со страницей через postMessage.

Сервисные рабочие

Это своего рода Web Worker, посвященный взаимодействию сервера и приложения. Как и предыдущий, он работает асинхронно и невидимо, использует интерфейс postMessage. Это прокси ко всему, что приходит с сервера: перехватывает то, что сообщается, передает на страницу, которая его использует в нужный момент.

Манифест и автономный режим

В теге HTML есть атрибут manifest для описания прогрессивного применения. Файл, указанный этим атрибутом, ранее содержал список ресурсов, которые должны быть скрыты на клиентском компьютере для использования в автономном режиме. Мы использовали эту линию:

<html manifest="monapplication.appcache">

Ресурсы помещались в «кэш» (буфер памяти) на клиентском компьютере, что приводит к применению расширения, но можно использовать любое другое расширение. Но теперь это устарело, потому что мы получаем такой же результат с IndexedDB и Service Worker.

Отныне в атрибуте manifest содержится ссылка на описательный файл, что упрощает использование приложения в любой программе установки или в другом файле. Его заявление имеет следующую форму:

<html manifest="monapplication.manifest">

Файл, связанный с форматом на основе JSON, заданным для этого W3C. Он содержит следующие указания.

Обзоры PWA