Могут ли pwa конкурировать c нативными приложениями?

Что это такое 503 Service Temporarily Unavailable (перевод на русский)

В переводе на русский язык текст ошибки 503 звучит как «503 Сервис временно недоступен» и обычно касается ситуации, когда рассматриваемый сервис (ресурс) не успевает обработать все обращения к нему, и на некоторое время перестаёт принимать новые запросы по данному адресу.

Данная ошибка 503 является одним из стандартных кодов состояния HTTP, и обычно проявляет себя такими стандартными клише как «503 Service Unavailable», «HTTP Server Error 503», «503 Error», «HTTPs Error 503» и рядом других. Проблема возникает при работе браузера в любой современной операционной системе, где задействуется подключение к сети Интернет.

Главные принципы PWA

  • Адаптивность: интерфейс адаптируется к размеру экрана устройства
  • Похоже на приложение: PWA не похоже на веб-сайт, а скорее на приложение
  • Автономность: PWA будет использовать хранилище устройства для кеширования самого себя, с возможностью работать офлайн
  • Устанавливается: браузер устройства предлагает пользователю установить ваше приложение на рабочий экран устройства
  • Повторное привлечение аудитории: push-уведомления помогают возвращать часть пользователей на сайт после первого взаимодействия
  • Доступно для индексации: поисковые системы и хорошая SEO-оптимизация дают возможность сайту-приложению ранжироваться в поиске
  • Почти всегда свежие данные: приложение обновляет себя и свой контент, когда подключается к сети
  • Использует HTTPS (типа безопасно и всё такое)
  • Прогрессивность: будет работать на любых устройствах, даже старых, даже с меньшим количеством возможностей (например, просто как сайт, не устанавливаемый)
  • Использует обычные URL: поэтому легко делиться с кем-то информацией путём обычных урлов. 

GBWhatsApp — мод для WhatsApp, позволяющий устанавливать на Android модифицированную версию популярного приложения с еще больше функций

Голосуйте

…10987654321

Средняя

9/10
(81549 Всего голосов)

Скачать

Поскольку WhatsApp является одним из самых загружаемых и используемых приложений по всему миру, оно также имеет множество дополнительных разработок, направленных на расширение функций этого приложения для обмена мгновенными сообщениями, у которого, честно говоря, нет соперников: Telegram, LINE, Signal , Kik … могут быть популярными в определенных местах, но они не могут сравниться с WhatsApp, у которого на глобальном уровне имеет более миллиарда активных пользователей. Facebook Messenger является единственным приложением, что может вступить в борьбу, но так как оба принадлежат Facebook, все остается в семье.

Расширенные функции и новые особенности для WhatsApp

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

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

  • Используйте две учетные записи WhatsApp одновременно из одного приложения.
  • Параметры, которые улучшают вашу конфиденциальность: вы можете скрыть свой онлайн-статус, скрыть две синие галочки, установить пароль для доступа к чатам, скрыть, что вы пишете или записываете сообщение…
  • Совместное использование документов и мультимедийных файлов: отправка документов в формате PDF, TXT или DOC размером до 50 МБ, делиться вашим местоположением одним кликом, делиться контактами намного проще…
  • Настраиваемый пользовательский интерфейс с улучшенным доступом к камере, настройкой шрифтов, новыми меню для поиска контактов…

Эта разработка имела несколько популярных версий, таких как 5.90 или 6, но последние устарели с появлением новых версий. Помните, что для установки этого приложения вам придется удалить WhatsApp (рекомендуется создать резервную копию ваших разговоров, если вы не хотите их терять). И не волнуйтесь, оно имеет защиту против банирования, поэтому вас не заблокируют из-за использования этой модифицированной версии.

Требования и дополнительная информация:

  • Требуется минимальная операционная система: Android 4.0.3.
  • Установка приложения посредством файла АПК требует активировать функцию «Неизвестные источники» в Настройки> Приложения.

Мария Жушков

8/10

Языки приложения

Автор
GBWhatsApp

Обновление
Сегодня

Последний пересмотр
Сегодня

Размер
51,9 MB

Технические стандарты, на которые должно полагаться PWA

Есть несколько технических решений, которые должны быть использованы в прогрессивном веб-приложении:

  • HTTPS для безопасной доставки контента.
  • Укажите манифест веб-приложения, чтобы предоставить дополнительные мета-данные. В прошлом у нас были мета-теги, которые предоставляли поисковым системам дополнительную информацию контенте. Манифест веб-приложенияпохож на мета-теги 2.0:
{
  "short_name": "KIRUPA",
  "name": "KIRUPA",
  "icons": [
    {
      "src": "/images/orange_192.png",
      "type": "image/png",
      "sizes": "192x192"
    },
    {
      "src": "/images/orange_512.png",
      "type": "image/png",
      "sizes": "512x512"
    }
  ],
  "start_url": "/index.html?source=pwa",
  "background_color": "#0099fe",
  "display": "standalone",
  "scope": "/",
  "theme_color": "#0099fe"
}

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

Используйте service worker, чтобы обеспечить кэширование для автономного режима и плохого интернет-соединения. Service worker — это фоновый скрипт, который запускается, даже когда браузер не работает.

Кроме этого service worker позволяет перехватывать все сетевые события приложения. Это позволяет написать собственный JavaScript-код, чтобы разрешить сетевой запрос, заблокировать запрос, вернуть файл из кэша, обработать push-уведомление и так далее. Если вы хотите узнать больше, прочитайте Service Workers: Введение.

Причины, связанные с сервером

Ряд причин, связанных с сервером тоже может вызывать ошибку 503 service unavailable. Обычно, ошибка 503 вызванная проблемами с сервером исчезает автоматически через несколько минут.

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

Повысить ресурсы сервера

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

Вы постоянно получаете ошибку 503 service unavailable? Если да, проверьте свои показатели в Google analytics. Если вы получаете больше трафика, чем обычно, вам определённо перестало хватать изначальных ресурсов сервера.

Однако, если у вас нету прироста в трафике, но всё равно возникает ошибка 503, ваша проблема не имеет отношение к недостаточному количеству RAM или памяти на сервере.

Ограничение частоты сканирования Google

Для индексирования вашего контента, Google использует специальные скрипты, известные как сканеры (crawlers). Они регулярно посещают сайт и собирают контент и определяют другие показатели ранжирования.

Хоть это и редкий случай, но сканирование может вызвать рост потребления ресурсов на вашем сервере и замедление работы сайта. Чтобы обойти это и избежать ошибки 503, вы можете ограничить частоту сканирования Google в Google Search Console.

Примечание: Изменения, внесенные вами, будут действовать в течение 3 месяцев. К тому же, если у вас есть версия сайта с WWW и без WWW, сделать настройки нужно для обоих.

Google Search Console

На следующей странице настройте частоту сканирования Google перемещением ползунка влево:

Ограничение WordPress Heartbeat

Согласно WordPress.org, “…Heartbeat API — это пример API приложения встроенного в WordPress и осуществляющего опрос сервера, позволяя в режиме почти реального времени видеть показатели.” Он отвечает за такие функции, как авто-сохранение и так далее.

Приложение WordPress Heartbeat API запускает файл admin-ajax.php среди других запросов с регулярным интервалом, когда вы заходите на свой сайт.

Это функциональность потребляет ресурсы вашего сервера, но вы можете её ограничить или вообще выключить. Когда вы восстанавливаете свой сайт, вы можете использовать плагин Heartbeat Control WordPress для ограничения этой функциональности, вместо того, чтобы выключить его вообще.

Чтобы определить вызывает ли WordPress Heartbeat ошибку 503 service unavailable на своём WordPress сайте, добавьте следующий код в свой файл темы functions.php сразу после открытия тэга 

add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat() {
wp_deregister_script('heartbeat');
}

Сохраните изменения и перезагрузите сайт. Если ошибка 503 пропала, вздохните с облегчением. Но если ошибка 503 service unavailable всё ещё осталась, это значит WordPress Heartbeat API является наименьшей из ваших проблем.

Если код выше не помог устранить ошибку 503, не забудьте удалить этот код из своего файла functions.php.

Дружба AMP с PWA

Несмотря на то, что Service Worker позволяет вам кэшировать все ресурсы вашего сайта почти мгновенно после загрузки, первое впечатление имеет огромное значение. Если первая загрузка занимает более 3 секунд, последнее исследование DoubleClick показывает, что более 53% всех пользователей уйдут.

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

Такую возможность для сайта дает технология AMP (Accelerated Mobile Pages) — это страницы с ускоренной загрузкой, AMP обеспечивает отличную производительность при загрузке страниц для пользователей, просматривающих контент в мобильной сети, что чрезвычайно важно для ограниченных или неустойчивых сетей и быстро воспроизводит содержимое перед пользователями

Чтобы получить ускоренный пользовательский опыт, следует обратить внимание на ограничения, присущие AMP. Они не смогут быть полезны, если нужны высокодинамичные функции, включающие в себя push-уведомления, веб-платежи или другой функционал, что требует дополнительного Java скрипта

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

AMP

PWA

Моментальная загрузка Продвинутые характеристики платформы
Оптимизированное открытие Высокая динамичность
Нет пользовательских скриптов Медленная загрузка
Контент статичен Сложнее внедрить

Пытаясь держаться подальше от фрагментов кода, мы постарались открыть понятие PWA шире. А здесь небольшая подборка, где вы сможете узнать больше о разработке Progressive Web Apps:

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

Татьяна Сабадышина, SEO-специалист UAMASTER

Кэширование оболочки приложения

Это минимальный набор HTML, CSS и JavaScript, необходимых для отображения главной страницы приложения. Когда вы заходите в Интернет и открываете веб-сайт, вы дожидаетесь загрузки всей главной страницы, и это включает в себя не только динамический контент страницы, но и все изображения, шрифты, таблицы стилей, JavaScript, используемые на странице, — и большинство из них остаются неизменными независимо от того, сколько раз вы открываете сайт. Так почему бы не кэшировать все это?

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

Пример push-уведомлений

Готовый код находится в , также вам необходимо добавить  из Push Companion внутри .

Давайте сделаем поддержку push-уведомлений! Мы не станем разбираться с сервером отправки сообщений, а просто зарегистрируем его на вашем сайте, и вы сможете управлять им из командной строки.

Вам нужно сгенерировать ключи — один публичный и один приватный. Откройте Push Companion и не закрывайте, чуть позже мы воспользуемся сгенерированными ключами.

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

Подписка на push

Внутри кода вашего сайта вам необходима подписка на push-уведомления. На самом деле это довольно просто. Давайте добавим код подписки в

navigator.serviceWorker && navigator.serviceWorker.ready.then(function(serviceWorkerRegistration) {
serviceWorkerRegistration.pushManager.getSubscription()
.then(function(subscription) {
// subscription will be null or a PushSubscription
});
});

1
2
3
4
5
6

navigator.serviceWorker&&navigator.serviceWorker.ready.then(function(serviceWorkerRegistration){

serviceWorkerRegistration.pushManager.getSubscription()

.then(function(subscription){

// subscription will be null or a PushSubscription

});

});

Если равен , то нам нужно зарегистрироваться  — замените комментарий следующим кодом:

if (subscription) {
console.info(‘Got existing’, subscription);
window.subscription = subscription;
return; // got one, yay
}

const applicationServerKey = urlB64ToUint8Array(publicKey);
serviceWorkerRegistration.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey,
})
.then(function(subscription) {
console.info(‘Newly subscribed to push!’, subscription);
window.subscription = subscription;
});

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

if(subscription){

console.info(‘Got existing’,subscription);

window.subscription=subscription;

return;// got one, yay

}

constapplicationServerKey=urlB64ToUint8Array(publicKey);

serviceWorkerRegistration.pushManager.subscribe({

userVisibleOnlytrue,

applicationServerKey,

})

.then(function(subscription){

console.info(‘Newly subscribed to push!’,subscription);

window.subscription=subscription;

});

Во-первых, обратите внимание, что нигде не определяется. Создайте его в верхней части файла, используя открытый ключ из Push Companion созданный ранее:. const publicKey = »;

const publicKey = »;

1 constpublicKey=»;

Теперь вам нужно сохранить файл и перезагрузить страницу — на десктопе или мобильном устройстве, не имеет значения. Если вы посмотрите в консоль разработчика, то увидите сообщение в логах о подписке, содержащее поле «endpoint». Мы используем его в дальнейшем, так что не закрывайте окно.

Если вы видите ошибку, убедитесь, что ваш выглядит как длинная строка с кодировкой base64, а не «».

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

Основное правило: если ваш сервис воркер изменится, ваша страница перезагрузит его и переустановит. Во время разработки вы можете добавить простой комментарий, содержащий «версию» вашего сервис воркера. Всякий раз, когда он изменяется, событие  будет происходить снова, кэшируя все другие ресурсы, которые вы, возможно, изменили. Добавьте комментарий сейчас, в верхней части файла sw.js-

// version: I’m nearly finished the codelab woo!

1 // version: I’m nearly finished the codelab woo!

Далее

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

Вы можете увидеть это переведя ваш телефон в авиарежим, в результате чего вы получите  или .

Давайте исправим это.

Делаем простейшее PWA приложение для своего сайта

Возьмем какой-нибудь HTML шаблон для тестирования. Далее установим расширение Chrome Lighthouse. Оно покажет, насколько наше будущее приложение будет соответствовать стандартам.

Откроем наш новый сайт и запустим LightHouse, сгенерируем отчет («Generate Report»). Мы получим примерно такую картину:

Делаем иконку приложения

Подбираем любую pngшку размером не менее 260*260 пикселов и идем в онлайн генератор иконок. Например, в https://www.favicon-generator.org/

В нем генерируем набор иконок для всех устройств. На выходе получим архив и пошаговую инструкцию по внедрению иконки на сайт. Там всё очень просто.

Пишем манифест

Да, это звучит громко, но это необходимая информация о сайте: имя, цветовая тема, инфа об иконках.

Типичный файл манифеста для использования в PWA выглядит следующим образом:

 
{«name»: «Название приложения»,»short_name»: «Краткое имя»,»icons»: [{«src»: «images/icons/icon-128×128.png»,»sizes»: «128×128″,»type»: «image/png»},{«src»: «images/icons/icon-144×144.png»,»sizes»: «144×144″,»type»: «image/png»},{…},{«src»: «images/icons/icon-256×256.png»,»sizes»: «256×256″,»type»: «image/png»}],»stert_url»: «/index.html»,»display»: standalone»,//browser? minimal-ui, fullscreen»background_color»: «#3E4EB8,»display»: «2F3BA2}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

{

«name»»Название приложения»,

«short_name»»Краткое имя»,

«icons»{

«src»»images/icons/icon-128×128.png»,

«sizes»»128×128»,

«type»»image/png»

},

{

«src»»images/icons/icon-144×144.png»,

«sizes»»144×144»,

«type»»image/png»

},

{…},

{

«src»»images/icons/icon-256×256.png»,

«sizes»»256×256»,

«type»»image/png»

},

«stert_url»»/index.html»,

«display»standalone»,//browser? minimal-ui, fullscreen

«background_color»: «#3E4EB8,

«display»»2F3BA2

}

Генератор иконок нам отдал готовый файл манифеста, но его немного надо расширить. Делать это будем с помощью генератора манифестов. Заполним необходимую информацию о сайте. В правой части увидим сформированные данные JSON. Их и вставим поверх раннего файла manifest.json. Запускаем лайтхаус и смотрим результат:

Результат анализа. Уже лучше!

Внедряем файл Service Worker

Наличие файла Service Worker — требование технологии PWA. Сам файл достаточно сложен, но есть простая библиотека sw-toolbox, которая в разы упрощает разработку этого файла.

Алгоритм внедрения прост.

Регистрируем service worker, добавляем код в блок head нашего html документа.

1
2
3
4
5
6
7
8
9
10
11
12
13
14

Далее подключаем sw-toolbox в свой проект, закидываем файл в корневую папку сайта.

Создаем новый файл sw.js и вставляем в него следующий код:

 
‘use strict’;importScripts(‘sw-toolbox.js’);toolbox.precache([«index.html»,»style/style.css»]);toolbox.router.get(‘/images/*’, toolbox.cacheFirst);toolbox.router.get(‘/*’, toolbox.networkFirst, {networkTimeoutSeconds: 5});

1
2
3
4
5
6

‘use strict’;

importScripts(‘sw-toolbox.js’);

toolbox.precache(«index.html»,»style/style.css»);

toolbox.router.get(‘/images/*’,toolbox.cacheFirst);

toolbox.router.get(‘/*’,toolbox.networkFirst,{

networkTimeoutSeconds5});

Ещё раз запускаем лайтхаус (расширение Хрома) и запускаем генерацию отчета:

Отличный результат проверки!

Как зарабатывать на PWA-приложениях

Все зависит от вашей фантазии. Например, можно создать PWA: 

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

Лить трафик на PWA можно самыми разными способами. Рассмотрим некоторые из них. 

Push-уведомления

Один из самых популярных способов добычи трафика — закупать рекламу в нативных сетях с пуш-уведомлениями. Пуш-уведомления — это «сообщения» от браузера или приложения. Они выглядят естественно, поэтому им доверяют и не воспринимают как прямую рекламу. Кроме того, пуши можно легко персонализировать. 

Тизерная реклама

Для настройки тизерной рекламы нужно использовать рекламные сети. Чтобы лить в плюс, нужно правильно подобрать креатив и оптимизировать кампанию. Мы уже рассказывали в отдельной статье, как создать успешный тизер. 

У каждой соцсети есть своя рекламная сеть. Можно настраивать в ней таргетированную рекламу: показывать объявления тем пользователям, которых вы выберете сами. Например, людям определенного возраста, из определенных городов и так далее. 

Чтобы лить в плюс с социальных сетей, нужно правильно выбрать аудиторию и подобрать креативы, соответствующие рекламной политике сети. Мы уже рассказывали, например, как арбитражить с «Фейсбука» — читайте материал, чтобы узнать больше о правильном арбитраже трафика. 

Рекламные посты

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

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

Органическая выдача

Еще один популярный способ добычи трафика — работать с сайтами в поисковой выдаче. Можно раскрутить обычный информационный сайт и оставлять на нем ссылки на PWA либо создать дорвеи. 

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

Проверка наличия проблемыVerifying the issue still exists

  1. Определите имена настроек работоспособности и сервера, указанные в оповещении.Identify the health set name and the server name in the alert.

  2. В сообщении приводятся подробные сведения о точной причине возникновения оповещения. В большинстве случаев в сообщении приводится достаточно сведений по устранению неполадок для определения основной причины проблемы. Если в сообщении приводятся непонятные сведения:The message details provide information about the exact cause of the alert. In most cases, the message details provide sufficient troubleshooting information to identify the root cause. If the message details are not clear, do the following:

    1. Откройте командную консоль Exchange, а затем выполните следующую команду, чтобы получить сведения о наборе работоспособности, создавшем оповещение:Open Exchange Management Shell, and then run the following command to retrieve the details of the health set that generated the alert:

      Сведения о работоспособности Outlook Web App для настройки работоспособности server1.contoso.com выполните следующую команду:Outlook Web App health set details about server1.contoso.com, run the following command:

    2. Просмотрите выходные данные команды, чтобы определить монитор, сообщивший об ошибке.Review the command output to determine which monitor reported the error. Значение алертвалуе для монитора, который выдал оповещение: .The AlertValue value for the monitor that issued the alert is .

    3. Повторно запустите связанный зонд для монитора, который находится в неработоспособном состоянии.Rerun the associated probe for the monitor that’s in an unhealthy state. Обратитесь к таблице в разделе Explanation, чтобы найти связанный зонд.Refer to the table in the Explanation section to find the associated probe. Для этого выполните следующую команду.To do this, run the following command:

      Например, чтобы создать пробный зонд мониторинга Exchange ActiveSync на Server1.contoso.com, выполните следующую команду:For example, to create an Exchange ActiveSync monitoring probe on server1.contoso.com, run the following command:

    4. В выходных данных команды просмотрите значение параметра Результат зонда. Если этот параметр имеет значение Succeeded, ошибка была временной и в настоящее время устранена. В противном случае обратитесь к действиям по восстановлению, приведенным в следующих разделах.In the command output, review the Result value of the probe. If the value is Succeeded, the issue was a transient error, and it no longer exists. Otherwise, refer to the recovery steps outlined in the following sections.

ОбъяснениеExplanation

Служба Outlook Web App отслеживается с помощью следующих зондов и мониторов.The Outlook Web App service is monitored by using the following probes and monitors.

НаличиеProbe Настройки работоспособностиHealth Set ЗависимостиDependencies Связанные мониторыAssociated Monitors

овактппробеOwaCtpProbe

Outlook Web AppOutlook Web App

Active DirectoryActive Directory

Банк данныхInformation Store

овактпмониторOwaCtpMonitor

Дополнительные сведения о зондах и мониторах: работоспособность и производительность сервера.For more information about probes and monitors, see Server health and performance.

Кэширование и обслуживание статики

Сервис вокер полностью управляем событиями. Это значит что никакой из участков кода не запустится пока не произойдет событие, к нему подвязанное. Основные интересующие нас события это install и fetch. Мы можем отслеживать их добавив следующие строки кода в файл sw.js

self.addEventListener(‘install’, async event => { console.log(‘install event’) }); self.addEventListener(‘fetch’, async event => { console.log(‘fetch event’) });

Теперь мы видим что вокер запущен и отписал в консоль наши сообщения.

Любые изменения в файле sw.js запускают новое событие intall и позволяют обновить приложение.

Теперь определим две константы в которых обзовем наш кеш и определим массив файлов для кэширования.

const cacheName = ‘pwa-conf-v1’; const staticAssets = [ ‘./’, ‘./index.html’, ‘./app.js’, ‘./styles.css’ ];

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

Так же мы должны явно указать два пути ./ и ./index.html даже если результат их загрузки будет одинаков.

Теперь пришло время закешировать наш массив.

self.addEventListener(‘install’, async event => { const cache = await caches.open(cacheName); await cache.addAll(staticAssets); });

Где мы создаем объект кэша с новым именем и говорим ему добавить в кеш наши пути.

Функция addAll не сработает если один из путей будет недоступен.

Обновим страницу и откроем в консоле секцию Cache Storage и увидим наши данные.

Мы так же можем дебажить приложение из вкладки Sources.

Установка

npm install serve ./node_modules/serve/bin/serve.js

После этого сайт будет доступен по адресу http://localhost:5000/

Превращение вашего сайта в ПВП (прогрессивное веб-приложение) состоит из 2-х шагов:

  • создание манифеста;
  • добавление вокера.

Манифест представляет собой JSON файл (manifest.json), описывающий будущую структуру и настройки вашего приложения.

{ «name»: «Название приложения», «short_name»: «Коротко», «start_url»: «.», «display»: «standalone», «background_color»: «#2A3443», «description»: «Описание», «theme_color»: «#2A3443», «icons»: [ { «src»: «./img/icons/icon-512×512.png», «sizes»: «512×512», «type»: «image/png» } ] }

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

Сохраняем этот файл и добавляем ссылку на него в наш index.html в секцию header.

После загрузки манифеста браузером он поймет что мы загрузили не сайт а приложение.

Что бы в этом убедиться откроем консоль по F12 и перейдем во вкладку Application.

После чего выберем пункт Manifest и видим то, что указали в файле манифеста:

Что же такое Progressive Web Apps

Прогрессивное веб-приложение (PWA) — это веб-сайт, который выглядит и ведет себя так же, как мобильное приложение, что означает, что его можно добавить на главный экран смартфона, отправить push-уведомления, получить доступ к аппаратным средствам устройства и работать в автономном режиме. Да, вы правильно прочли. Progressive Web App работает так же гладко в неустойчивом соединении или при отсутствии сети, так как это было бы с полным доступом в интернет.

Как же браузер может открыть веб-сайт, не имея доступа к интернету, спросите вы? Верите или нет, ваш браузер теперь способен на многие интересные функции, которых вы бы не ожидали всего пару лет назад.

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

Исследование, проведенное в 2015 году marketingland.com, показало удивительную статистику — мобильные пользователи тратят 80% времени на своих устройствах, используя только три приоритетных нативных приложения.

Доля времени, проведенная в приоритетных приложениях, различных  пользователей


Значит, есть большой шанс, что множество нативных приложений, не использовались с давних пор. Приходится проходить процедуру скачивания, а в дальнейшем удаления приложений, что не прошли ваш краш-тест или стали не актуальны для вас со временем. Приоритетными для большинства из нас остаются несколько мобильных приложений, такие как Facebook, Instagram, почтовое приложение или другие.

Количество скачиваемых нативных приложений из года в год падает. За последние годы оно упало на 20% и эта цифра продолжает увеличиваться. В 2016 году число скачиваемых приложений стало меньше, чем число удаленных.

Среднее количество нативных приложений, устанавливаемых в месяц

Другим недостатком мобильных приложений является то, что эти приложения нужно искать. Будь то App Store или Google Play, чтобы загрузить приложение из магазина нужно, прежде всего, найти его там (что означает, что нужно точно знать, что ищете, иначе вам придется перепробовать десятки приложений, чтобы найти то, которое вас устроит). Нажать на «Загрузить», согласиться на условия, дождаться загрузки приложения, а далее и его установки… К тому времени, как все закончится, вы можете легко забыть, что вы искали и для чего.

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

Вес приложения — еще один немаловажный фактор. Средний вес нативного приложения составляет около 25 Мб. Некоторые из них откормились. Чем больше появляется различных сервисов, тем больше приложений теснятся в наших смартфонах и не всегда для всех них достаточно места.

Средний вес Progressive Web Apps — всего 2Мб.

Ссылка на основную публикацию