Работали ли с PWA
Что проверяют
Отличаете ли вы набор технологий от продуктового решения. Прогрессивное веб-приложение это не библиотека, а сумма из манифеста, сервис-воркера и защищённого соединения. Спрашивают обычно там, где уже наступили на кэш или на установку.
Как отвечать
Назовите обязательные части и что каждая даёт:
- манифест описывает имя, иконки, стартовый адрес и режим отображения, без него не появится приглашение установить приложение;
- сервис-воркер это прокси между страницей и сетью, он живёт отдельно от вкладки и отвечает за кэш, оффлайн и фоновые сценарии;
- защищённое соединение обязательно, исключение только локальная разработка.
Дальше про стратегии: статика с хэшем в имени отдаётся из кэша сразу, обращения к интерфейсу данных идут в сеть с откатом на кэш, документ лучше брать из сети с коротким таймаутом. Писать это руками не обязательно, типовые случаи закрывает Workbox. Отдельно упомяните жизненный цикл: новый воркер ждёт освобождения вкладок, поэтому нужен явный сценарий обновления с уведомлением пользователя.
Честная рамка возможностей тоже в плюс: установка и оффлайн работают почти везде, а фоновая синхронизация и веб-пуши поддержаны неравномерно, на iOS пуши доступны только приложению, добавленному на домашний экран.
Где спотыкаются
Кэшируют разметку по принципу сначала кэш и получают намертво залипшую старую версию. Пользователь видит прошлый релиз, а обычное обновление страницы не помогает, потому что ответ отдаёт воркер.
Вторая ошибка: подавать это как замену нативному приложению. Ограничения по фоновой работе, доступу к системным возможностям и очистке хранилища при нехватке места реальны, и про них обязательно спросят.
Третья: забывают чистить старые кэши в событии активации. Версии накапливаются, квота хранилища кончается, записи начинают падать, и причину ищут где угодно, только не в собственном воркере.