Я шукаю сценарії в реальному світі для використання Web Workers API .
Я шукаю сценарії в реальному світі для використання Web Workers API .
Відповіді:
Джон Резіг (слава jQuery) має купу цікавих прикладів використання тут веб-працівників - ігор, графіки, криптовалют.
Інше використання - це введення / виведення Інтернету - іншими словами, опитування URL-адрес у фоновому режимі. Таким чином, ви не блокуєте інтерфейс користувача, який чекає результатів опитування.
Ще одне практичне використання: в Беспіні вони використовують веб-працівників для виділення синтаксису, який ви не хочете блокувати редагування коду, використовуючи додаток.
Від Mozilla : Одним із способів корисності працівників є надання дозволу вашому коду виконувати обчислювальні процеси, не блокуючи потік інтерфейсу користувача.
Як практичний приклад, уявіть додаток, у якому є велика таблиця #s (це реальний світ, BTW - взято з програми, яку я запрограмував ~ 2 роки тому). Ви можете змінити один # у таблиці за допомогою поля введення, а ще ряд інших чисел у різних стовпцях буде повторно обчислений у досить інтенсивному процесі.
Старий робочий процес був таким чином: Змініть #. Ідіть, випийте каву, тоді як JavaScript розчавлюється через зміни інших номерів, і веб-сторінка не відповідає 3 хвилини - після того, як я оптимізував її до пекла і назад. Поверніться з кавою. Змініть секунду #. Повторіть багато разів. Натисніть кнопку Зберегти.
Новим робочим процесом з працівниками може бути: Змінити #. Отримайте повідомлення про стан, що щось перераховується, але ви можете змінити інші #. Змінити більше #. Закінчивши зміну, зачекайте, поки зміни статусу стануть "усі розрахунки завершені, тепер ви можете переглянути остаточний номер і зберегти".
Я використовував їх для надсилання більшої кількості даних з браузера на сервер. Очевидно, ви можете це зробити за допомогою регулярних дзвінків AJAX, але якщо це займе одне з дорогоцінних з'єднань на ім’я хоста. Крім того, якщо користувач здійснює перехід сторінки під час цього процесу (наприклад, натискає на посилання), ваші об’єкти JavaScript з попередньої сторінки відходять, і ви не можете обробляти зворотні дзвінки. Якщо використовується веб-працівник, ця діяльність відбувається поза діапазоном, тому ви маєте кращу гарантію, що вона завершиться.
Ще один випадок використання:
Стиснення / видалення файлів у фоновому режимі, якщо у вас багато зображень та інших медіа-файлів, які обмінюються з сервера у стисненому форматі.
<canvas>
), ви можете отримати дані зображення у стисненому форматі (тобто png). Моя думка полягала не в тому, що ніколи не доречно стискати в JS; моя думка полягала в тому, що в більшості випадків це не так , і для більшості випадків - особливо це стосується зображень, про що йдеться у цій відповіді - є краща альтернатива згортанню власного стиснення.