Що можуть зробити службовці, які працівники веб-сайтів не можуть?


109

Що можуть зробити службовці, які працівники веб-сайтів не можуть? Або навпаки?

Здається, що веб-працівники - це підмножина функціональних можливостей службовців. Це правильно?

Відповіді:


140

Існує велика різниця в тому, для чого вони призначені:

Веб-працівники

Веб-працівники надають простий засіб веб-контенту для запуску скриптів у фонових потоках. Робоча нитка може виконувати завдання, не втручаючись у користувальницький інтерфейс. Крім того, вони можуть виконувати введення / виведення за допомогою XMLHttpRequest (хоча атрибути відповідіXML та канали завжди є недійсними). Після створення робітник може надсилати повідомлення до коду JavaScript, який його створив, розміщуючи повідомлення обробнику подій, визначеному цим кодом (і навпаки).

Джерело - Використання веб-працівників

Службовець

Сервісні працівники, по суті, виступають як проксі-сервери, які розміщуються між веб-додатками та веб-переглядачем та мережею (за наявності). Вони покликані (крім усього іншого) дати можливість створювати ефективний режим роботи в режимі офлайн, перехоплювати мережеві запити та вживати відповідних дій на основі наявності мережі та оновлених ресурсів, які перебувають на сервері. Вони також дозволять доступ до push-сповіщень та фонових API синхронізації.

Джерело - API сервісного працівника

Тож веб-робітники зручні для запуску дорогих сценаріїв, не спричиняючи заморожування інтерфейсу користувача, тоді як службовцям служби корисно змінювати відповідь на мережеві запити (наприклад, під час створення офлайн-програми).


1
Що можуть зробити службовці, які працівники веб-сайтів не можуть?
Pacerier

1
@Pacerier прочитав другу цитату та останній абзац, щоб відповісти на ваше запитання
Buksy

Я погоджуюся з Пасьєр'є, що це не відповідає на питання. Я лише розповідаю, що робить один, а що інший. Читач може прийти до висновку на його основі, але хороша відповідь повинна прояснити, а може навіть підтвердити чи підтвердити висновок читачів.
kicia

Мені подобається інша відповідь, яку запропонував Алі, її більш широкий опис відмінностей між цими двома технологіями. Але я думаю, що останній абзац моєї відповіді чітко відповідає на питання, що веб-працівники можуть допомогти вам створити офлайн-додаток . Якщо ви вважаєте, що є кращою відповіддю, не соромтесь додати ще одну :)
Buksy

1
@Buksy, помилка у вашому коментарі: [[Служба]] Робітники можуть допомогти вам створити офлайн-додаток
Ахмад Мобаракі

144

Відповідь Buksy правильна, але, на мою думку, вона не дає відповіді на початкове запитання, а саме: "Що можуть робити службовці, які працівники мережі не можуть? Або навпаки?"

Існують принципові відмінності в їхньому життєвому циклі та кількості екземплярів на походження, які ви можете мати. Коротко:

               | Web Workers  | Service Workers  |
|--------------|--------------|------------------|
| Instances    | Many per tab | One for all tabs |
| Lifespan     | Same as tab  | Independent      |
| Intended use | Parallelism  | Offline support  |

Відповідь Буксі - це в основному останній рядок таблиці. Кредит: Я взяв цю таблицю у Демістифікуючих веб-працівників та службовців Нолана Лоусона, починаючи з слайда 35 .

Зокрема, ось як нерестувати та звільняти веб-працівників:

Використання веб-працівників

враховуючи, що працівники сфери обслуговування мають власний життєвий цикл, що, очевидно, є їх "найскладнішою частиною":

Життєвий цикл службовця

Таким чином, життєвий цикл - це одна принципова відмінність між ними (наслідок їх передбачуваного використання).

Раніше велика різниця у підтримці браузера : Сервісні працівники взагалі були недоступні в Safari для iOS до 11.3 (2018, 29 березня), див. Чи можна використовувати службових службовців? На відміну від цього, веб-працівники мали набагато кращу підтримку браузера вже у 2012 році: чи можу я використовувати веб-працівників?

Якщо вам доведеться підтримувати IE11, ви можете використовувати лише веб-працівників: IE11 не має службових працівників, і, мабуть, кінець підтримки IE11 - 14 жовтня 2025 року .

Існують тонкі відмінності в їх підтримці API у веб-переглядачах, див. Тест HTML5 Worker (також Нолан Лоусон). У конкретному веб-переглядачі один тип працівників може підтримувати певний виклик API, тоді як інший - ні. Зайдіть на цю сторінку і протестуйте власний браузер!


3
Ця таблиця це дуже добре пояснює. Оригінальне запитання, мабуть, було б краще сформулювати як "Яка різниця між ..."
Дренай

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