PWA против SPA: похожие, но разные

Опубликовано: 2019-09-18

Оглавление

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

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

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

Как они работают?

Одностраничные приложения (SPA)

SPA (одностраничное приложение) — это веб-сайт, текущая страница которого обновляется динамически , а не полностью загружается с сервера. Другими словами, весь необходимый код приложения для вашего веб-приложения (HTML, CSS, JavaScript) нужно загрузить только один раз . Когда пользователь перемещается по веб-приложению, все содержимое и элементы, требующие обновления, извлекаются и повторно отображаются, не требуя от пользователя перезагрузки браузера.

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

Как работает СПА
Как работает СПА

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

Вот некоторые из известных SPA, которые вы, вероятно, используете регулярно:

  • Фейсбук
  • Gmail
  • Линкедин
  • Нетфликс
  • Карты Гугл

Прогрессивные веб-приложения (PWA)

В отличие от SPA, Progressive Web App (PWA) больше похоже на набор руководств и контрольных списков, чем на конкретную архитектуру. PWA известны и отличаются от SPA по нескольким характеристикам, таким как:

  • Сервисные работники: Сервисные работники обеспечивают техническую основу для многих важных функций PWA, а именно автономной доступности и push-уведомлений.
  • Манифест веб-приложения: файл JSON, содержащий необходимые метаданные для вашего PWA. Манифесты веб-приложений могут создаваться автоматически с помощью генератора манифестов PWA.
  • HTTPS: PWA всегда обслуживаются из безопасного источника.
Как работает PWA
Как работает PWA

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

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

Мы написали подробное руководство о том, что такое Progressive Web App. Так что вы не можете пропустить это!

Чем они похожи?

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

Какая разница?

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

Проще говоря, PWA — это веб-сайт, который обладает всеми лучшими качествами , которые может предложить Интернет. Это надежно, быстро и увлекательно.

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

Экран загрузки Gmail
Пользователи SPA должны быть знакомы с начальной страницей загрузки

Очевидно, что различия между этими двумя не только в этом, есть еще много чего разобрать:

С точки зрения скорости

Что касается скорости, то эти две архитектуры очень похожи, поскольку обе они являются передовыми технологиями. Однако здесь верх может взять PWA.

Причина этого в том, что, хотя и SPA, и PWA используют JavaScript для своих разработок, PWA может использовать своих сервис-воркеров для рендеринга некоторых работ. Другими словами, большая часть чрезмерных накладных расходов JavaScript, которые SPA добавляют к вашим веб-приложениям, вместо этого может быть делегирована сервис-воркерам, что значительно сокращает объем JavaScript.

Эксперименты с PWA в Jetpack

Это позволяет сайтам PWA предварительно кэшировать многие ресурсы сайта: скрипты, CSS, изображения и разметку до того, как они потребуются. Благодаря этим предварительным кэшам сеть пользователя избавляется от дополнительных нагрузок, связанных с рендерингом, и может работать в автономном режиме.

С точки зрения стоимости

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

PWA : 2000–20 000 долларов.

СПА : $1500$12.000

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

 Рекомендуемая литература: Сколько стоит создание Magento PWA?

С точки зрения пользовательского опыта / пользовательского интерфейса

В то время как SPA имели свое место в прошлом, люди начинают переходить на PWA, поскольку они предлагают лучший пользовательский опыт (UX).

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

Статистика PWA в Твиттере
Источник: PWAstats

И это не только Твиттер. Ожидается, что движение PWA останется здесь; к тому же с недавним участием Spotify движение, похоже, не собирается замедляться в ближайшее время.

Пользовательский интерфейс Spotify PWA для рабочего стола
Заманчивый пользовательский интерфейс Spotify PWA

Одностраничное приложение имеет свой предел неспособности обеспечить удовлетворительный UX на больших сайтах, поэтому оно лучше всего работает для сайтов, ориентированных на данные и не обязательно визуально ошеломляющих, таких как Gmail и Facebook.

Пользовательский интерфейс Gmail
Пользовательский интерфейс Gmail

С точки зрения безопасности

Безопасность — деликатная тема. Хотя и PWA, и SPA используют JavaScript в качестве своей основной библиотеки для разработки, их проблемы, связанные с безопасностью, сильно различаются, причем большинство из них связано с SPA и его проблемой XSS (межсайтовый скриптинг).

В PWA возникает гораздо меньше проблем с безопасностью, поскольку природа Progressive Web App заключается в том, что все соединения должны проходить через безопасный источник HTTPS. Как и PWA, HTTPS — это будущее Интернета, благодаря которому такие передовые функции, как сервис-воркеры, становятся доступными и возможными.

С точки зрения доступности

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

Значок Twitter PWA на рабочем столе
Значок Twitter PWA на рабочем столе

SPA на самом деле ужасны , когда дело доходит до доступности, поскольку они имеют тенденцию оставлять пользователя в глуши каждый раз, когда выполняется переход страницы. Это особенно расстраивает пользователей с ограниченными возможностями, поскольку никакие атрибуты арии или роли не смогут им помочь, если страница продолжает полностью менять свою структуру DOM (объектная модель документа).

Подведение итогов

Какими бы революционными ни были SPA, время, похоже, медленно их догоняет. Хотя SPA и PWA — это одно и то же, все больше и больше людей предпочитают PWA SPA, и это понятно, учитывая преимущества, которые приносят PWA.

С SimiCart мы предлагаем лучшее решение PWA для продавцов Magento.

Бесплатная тема Magento PWA