Що таке працівник служби в реакції js


93

При створенні програми для реагування за замовчуванням викликається працівник служби. Чому використовується службовець? У чому причина виклику за замовчуванням?

Відповіді:


105

Можливо, вам не знадобиться сервісний працівник для вашої заявки. Якщо ви створюєте проект за допомогою програми 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ввімкнено за замовчуванням у нових програмах, але ви завжди можете його видалити, і тоді Ви повернетесь до звичної поведінки.


2
як і в даний час згенерований додаток реакторjs має код sw, але коментар стверджує, що функція реєстрації не викликається. Тож питання в тому, де б я міг це назвати?
Daneel Yaitskov

@ DaneelS.Yaitskov, ви можете зателефонувати йому у файл index.js верхнього рівня або подібний.
Сіддхартха,

1
@Siddhartha, чи можете ви бути люб'язними, щоб навести конкретний приклад, і, можливо, оновити відповідь? Я знайшов це дуже корисним, але мені не вистачає цих останніх деталей. Дякую.
Тед Стрезен-Ройтер,

17

Простими і простими словами, це сценарій, який браузер працює у фоновому режимі і не має жодного відношення до веб-сторінок або DOM і надає готові функції. Це також допомагає кешувати ваші активи та інші файли, щоб, коли користувач перебуває в автономному режимі або в повільній мережі.

Деякі з цих функцій - це проксі-запити мережі, push-сповіщення та фонова синхронізація. Сервісні працівники гарантують, що користувач має багатий досвід роботи в автономному режимі.

Ви можете думати про працівника служби, як про того, хто сидить між клієнтом і сервером, і всі запити, що надходять на сервер, проходять через службовця. В основному, середній чоловік. Оскільки всі запити проходять через працівника служби, він здатний перехоплювати ці запити на льоту.

введіть тут опис зображення


6

Я хотів би додати 2 важливих міркування щодо працівників сфери обслуговування, які слід взяти до уваги:

  1. Працівники сфери послуг потребують HTTPS. Але щоб увімкнути локальне тестування, це обмеження не поширюється на localhost. Це з міркувань безпеки, оскільки службовець працює як людина посередині між веб-програмою та сервером.

  2. З Create React App Service Worker увімкнено лише у виробничому середовищі, наприклад під час запуску npm run build.

Службовець тут, щоб допомогти у розробці прогресивного веб-додатка . Хороший ресурс про це в контексті Create React App можна знайти на їх веб-сайті тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.