Введение в Angular Service Worker

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

В самом простом случае сервис-воркер — это сценарий, который запускается в веб-браузере и управляет кэшированием приложения.

Сервисные работники работают как сетевой прокси. Они перехватывают все исходящие HTTP-запросы, сделанные приложением, и могут выбирать, как на них отвечать. Например, они могут запросить локальный кеш и доставить кешированный ответ, если он доступен. Проксирование не ограничивается запросами, сделанными через программные API, такие как выборка; он также включает ресурсы, на которые есть ссылки в HTML, и даже первоначальный запрос к index.html. Таким образом, кэширование на основе сервис-воркеров полностью программируется и не зависит от заданных сервером заголовков кэширования.

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

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

Сервис-воркеры в Angular

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

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

Поведение сотрудника службы Angular следует этой цели проектирования:

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

Для поддержки такого поведения рабочий сервис Angular загружает файл манифеста с сервера. Манифест описывает ресурсы для кеширования и включает хэши содержимого каждого файла. При развертывании обновления приложения содержимое манифеста изменяется, информируя сервис-воркера о том, что новая версия приложения должна быть загружена и кэширована. Этот манифест создается из сгенерированного CLI файла конфигурации с именем ngsw-config.json.

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

Предварительные требования

Ваше приложение должно работать в веб-браузере, поддерживающем сервис-воркеры. В настоящее время сервис-воркеры поддерживаются в последних версиях Chrome, Firefox, Edge, Safari, Opera, UC Browser (версия для Android) и Samsung Internet. Такие браузеры, как IE и Opera Mini, не поддерживают эту функцию.

Связанные ресурсы

Для получения дополнительной информации о сервис-воркерах в целом, см. «Service Workers: an Introduction».

Для получения дополнительной информации о поддержке браузера см. раздел поддержки браузера в Service Workers: an Introduction, Jake Archibald’s Is Serviceworker ready? и Can I Use.

Оцените статью
nanomode.ru
Добавить комментарий