При создании реагирующего приложения по умолчанию вызывается сервисный работник. Почему используется сервис воркер? В чем причина вызова по умолчанию?
Ответы:
Возможно, вам не понадобится сервисный работник для вашего приложения. Если вы создаете проект с помощью приложения create-response-app, оно вызывается по умолчанию.
Сервисные работники хорошо объяснены в этой статье. Подводя итог
A
service worker
- это скрипт, который ваш браузер запускает в фоновом режиме, отдельно от веб-страницы, открывая доступ к функциям, которым не нужны веб-страница или взаимодействие с пользователем. Сегодня они уже включают в себя такие функции , какpush notifications
иbackground sync
и естьability to intercept and handle network requests
, в том числеprogrammatically managing a cache of responses
.В будущем сервис-воркеры могут поддерживать другие вещи, такие как
periodic sync
илиgeofencing
.
Согласно этому PR создать-реагировать-приложение
Service workers
вводятся с помощью create-response-app черезSWPrecacheWebpackPlugin
.Использование рабочего сервера со стратегией «сначала кэш» дает преимущества в производительности, поскольку сеть больше не является узким местом для выполнения запросов навигации. Однако это означает, что разработчики (и пользователи) будут видеть развернутые обновления только при «N + 1» посещении страницы, поскольку ранее кэшированные ресурсы обновляются в фоновом режиме.
Вызов register service worker
включен по умолчанию в новых приложениях, но вы всегда можете удалить его, и тогда вы вернетесь к обычному поведению.
Проще говоря, это сценарий, который браузер запускает в фоновом режиме и не имеет никакого отношения к веб-страницам или DOM, и предоставляет готовые функции. Это также помогает вам кэшировать ваши активы и другие файлы, когда пользователь находится в автономном режиме или в медленной сети.
Некоторые из этих функций - проксирование сетевых запросов, push-уведомления и фоновая синхронизация. Сервисные работники гарантируют, что у пользователя есть богатый опыт автономной работы.
Вы можете думать о сервис-воркере как о ком-то, кто сидит между клиентом и сервером, и все запросы, которые отправляются на сервер, проходят через сервис-воркер. В основном посредник. Поскольку все запросы проходят через сервис-воркер, он способен перехватывать эти запросы на лету.
Я хотел бы добавить два важных момента, которые следует учитывать в отношении Service Workers:
Сервисным работникам требуется HTTPS. Но для включения локального тестирования это ограничение не распространяется на localhost
. Это сделано из соображений безопасности, поскольку Service Worker действует как человек посередине между веб-приложением и сервером.
С Create React App Service Worker включается только в производственной среде, например, при запуске npm run build
.
Сервисный работник здесь, чтобы помочь в разработке прогрессивного веб-приложения . Хороший ресурс об этом в контексте приложения Create React можно найти на их веб-сайте здесь .