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

Этот тип приложений стал неактуальным и слишком мало используется, говорят в Google, и должен уступить место PWA, которые предоставляют идентичный пользователю опыт и имеют преимущество в работе на всех последних браузерах с использованием новых веб-технологий.
Значение термина «прогрессивный» в PWA довольно расплывчато и относится к прогрессу, который приносят приложения, работающие на любом компьютере или мобильной связи. PWA на самом деле имеют более точные характеристики:
- Реагируют в асинхронном режиме рабочих, WebSocket.
- Работает в автономном режиме с помощью рабочих служб и IndexedDB.
- Родной вид интерфейса и взаимодействие.
- Немедленное обновление программы и содержания через Интернет.
- Индексируется с помощью манифеста, который также позволяет настроить приложение локально.
- Конечно, изначально она должна быть в HTTPS.
Технологии
Для того, чтобы веб-приложение было похожим на локальное, оно должно быть прежде всего реактивным, без задержек, что допускается серией новых инструментов.
Веб-сборка
Этот новый язык 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. Он содержит следующие указания.
- Название программы.
- Ссылка на значок размером не менее 144х144 пикселей в формате PNG.
- URL-адрес для запуска приложения.
- Данные конфигурации и установки.
- Поддерживаемый или нет полноэкранный режим.
Обзоры PWA
- GitHub Explorer.
- Firefox Platform Status. Состояние реализации веб-технологий.