Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как часто вы используете web workers? (https://javascript.ru/forum/misc/46844-kak-chasto-vy-ispolzuete-web-workers.html)

kolyan92 26.04.2014 13:47

Как часто вы используете web workers?
 
Прошу опытных программеров пояснить где и когда без них никак.

kobezzza 26.04.2014 17:38

Ну, была например необходимость работать с графиков, т.е. там ресайз, применение эффектов и т.д. с полной реализацией на клиенте, а так изображения могут быть очень большими, то чтобы браузер не вешался делал все нужные вычисления в отдельном потоке (ну т.е. в Worker).

Или тоже была как то задача написать синхронизацию вкладок браузера (в рамках домена), то для этих целей использовал SharedWorkers.

В общем везде где есть много вычислений, то Worker-ы отлично подойдут.

kolyan92 26.04.2014 19:20

Какой приблизительный процент проектов с воркерами?
Наверное же большинство задач (99%) - без воркеров.

Насколько критично-катастрофично было бы отсутствие этой возможности для веб приложений.
Я понимаю про тяжелые вычислений типа растровых фотошопных преобразований, когда что-то долго считается и надо при этом дать пользователю возможность продолжать работу с интерфейсом - допустим отбросим их и проживем в вебе без них.
Какие еще классы подтипы вебприложений как правило основываются на многопоточности.
Мне бы понять - из всего спектра типичных вебприложений какие типы требуют многопоточности.

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

Aetae 26.04.2014 22:15

Чего вы добиваетесь то?
Да в 99% типичных задач они не нужны.
Но есть 1% в которых без низ никак.
Всё.

Если нужны ещё конкретные примеры: 3D игры на клинте, работа с бинарными файлами на клиенте итд.

kolyan92 26.04.2014 22:24

Да, нужны конкретные примеры из реальной жизни.
В 3D играх наверное это webGL ?

Aetae 26.04.2014 22:37

Повторяю вопрос: чего вы добиваетесь то?
Общий ответ на вопрос "где использовать воркеры" - везде где теоретически может возникнуть задержка в обработке и, соответственно, подвисание окна браузера.

Ещё примеры: обработка больших таблиц и графиков.

kobezzza 26.04.2014 22:47

Игры, работа с бинарными файлами, работа с видео/аудио/графикой, также воркеры отлично подходят для создания своих "песочниц" для приложений, примеров можно придумать много.

Цитата:

Какой приблизительный процент проектов с воркерами?
Достаточно низкий, но это не отменяет их ценность.

Цитата:

Насколько критично-катастрофично было бы отсутствие этой возможности для веб приложений.
Критично, даже очень.

kolyan92 26.04.2014 23:45

Спасибо за конкретные примеры. Если вспомните еще пишите.
Мне нужен конкретный перечень работ. Спрашиваю у тех кто уже отпахал пару пятилеток ударным джаваскриптом.

Вопрос темы общий.

В частности - ограничу круг задач анимацией элементов интерфейса, без сложной математики.
Допустим есть движок для создания типовых сайтов с модной хтмл5-анимацией. То есть всё шевелится и прыгает и элементы 2D-игры, со звуком, с несколькими холстами, с айфреймами, и само собой часть программы для общения с сервером. Нагрузка тут скорее из-за большого количества элементов анимации, холсты - каждый с собственной анимацией

- где тут обычно используют воркеры?
или вполне можно сделать без них

Подозреваю что для каждого холста нужен свой воркер.
Или допустим просчет физики столкновения в играх.
Что еще я упускаю?

Sweet 26.04.2014 23:52

В воркерах нет доступа к DOM, а для анимаций есть requestAnimationFrame. Так что могу сказать, где без воркеров обойтись: в анимациях.
Цитата:

Сообщение от kolyan92
с несколькими холстами, с айфреймами, и само собой часть программы для общения с сервером.

Это как раз примеры, где воркеры - не пришей кобыле хвост.

kolyan92 27.04.2014 00:21

Дык разъясняй профессор!


Часовой пояс GMT +3, время: 23:33.