Как стать автором
Обновить

Комментарии 17

Складывается впечатление, что PWA — это костыль, который исправляет неправильную работу кэша браузера при отключении инета…
В таком случае, автомобиль — это костыль, чтобы добраться из пункта А в пункт Б, когда сломался велосипед.
Ну, не скажите. Я вижу здесь исключительно функцию кеширования. По идее, браузер должен корректно обрабатывать заголовки и сам отдавать все, кроме no-cache, не так ли?
Более того, у браузера есть такое понятие, как срок кеширования. Как я понимаю, это можно реализовать в Javascript, наверное даже как-то гибче, но, имхо рулить заголовками много легче, чем лезть в логику приложения…
Я приводил пример в прошлой статье — браузер посылает запрос, Service Worker берет его, распарсивает, посылает на сервер несколько запросов, принимает ответы, лезет в IndexDB, берет оттуда данные, проделывает какие-то операции, апдейтит IndexDB и возвращает некий ответ браузеру.
Это исключительно функция кэширования?
Что из этого нельзя сделать «обычным Javascript»? Кроме IndexedDB, конечно, но, имхо, простейшие задачи можно решить на клиенте более простыми способами, не прибегая к IndexedDB.
У вас на браузере расширения стоят? Пользуетесь? Прикольные штучки? Так вот они как раз реализованы в том числе как прокси. В этом их сила. А так, почти все что они делают, можно сделать на «обычном Javascript».
Большинство расширений (у меня) выполняют функции, не доступные из «обычной» страницы (например, управление настройками браузера, изменение контента любой вкладки, и т.д.), другие чисто удобнее в использовании (контекстное меню, иконка).
Вот что из этого невозможно реализовать «обычным» Javascript?
«Обычным» Javascript-ом можно реализовать всё

image

Можно, конечно, так говорить.
Но на самом деле PWA задумывался иначе: принести интерфейс приложения через web фрейморки нативно на разные android/ios.


Другое дело, что в жизни все пошло не совсем как планировалось (сюрприз) и некоторые производители решили привнести свое/не реализовывать чужое. Получилось, что в угоду совместимости родились 1001 костыль.


Следует заметить, что это далеко не Java, как по ограниченности применения (нужен браузер и гуи), так и по принципу реализации (нет машины, компиляции и т.п.).


Если же смотреть на вещи без скепсиса: pwaэто больше концепт чем конкретная реализация. Можно pwaделать на node, а можно через java его "отдавать"...

PWA это два файла: manifest.json, который «приносит интерфейс приложения через web фрейморки нативно на разные android/ios.», и service-worker.js, который кэширует оболочку (или что скажут), проксирует запросы и может слать пуши. Всё.
Уточните, пожалуйста, IOS поддерживает PWA?
Поскольку попробовал на IOS в нескольких браузерах и ничего не выходит.

Плюс, там не все прямо вот работает (т.е. флрмально да, но есть особенности, как это всегда у конкурирующих).

Скучаю по старой опере когда на диалапе откроешь 10 вкладок. Ждёшь загрузки и резко дисконектишься и не боишься, что одно движение сбросит тебе контент. Ещё и вперёд назад работало в оффлайн режиме. ..

Я, наверное, сейчас тупость спрошу, но это потому что я не настоящий программист, а самоучка.
Вот здесь в манифесте:
"start_url": "/habr-pwa/hello-habr/",
"scope": "/habr-pwa/hello-habr/",

почему путь начинается с родительской папки, ведь все файлы лежат в /hello-habr?

На моем сайте заработало, только когда я сделал
"start_url": "index.html",
"scope": "https://mysite.org/path/",

Автору большое спасибо.
Да, «start_url» был неправильный. Спасибо.
В hh.css, наверное, должно быть не url(Zaplyv-Heavy.otf), а url(hh.otf)?

Спасибо за полезную статью!
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.