Как создать фоновые потоки в JavaScript

Этот вопрос был задан и на него был дан ответ здесь и здесь. Тем не менее, обоим потокам уже более 18 месяцев, и в мире javascript все быстро развивается. Поэтому я снова спрашиваю, чтобы получить актуальный ответ.

Для нашего использования нам нужен один фоновый поток, который будет работать довольно регулярно. Это для расширенного редактора, и всякий раз, когда пользователь редактирует, этот фоновый поток должен пересчитывать макет форматированного текста.

Похоже, что веб-воркеры — лучший подход. Однако согласно Википедии "он удален в более новых версиях браузера Android".

Вопросы:

  1. Являются ли Web Workers лучшим подходом или есть что-то лучше?
  2. Существуют ли браузеры, которые не будут поддерживать Web Workers в будущем? И если да, то какие?
  3. Есть ли список версий основных браузеров, необходимых для Web Workers?

person David Thielen    schedule 16.01.2014    source источник


Ответы (1)


Я бы порекомендовал WebWorkers в качестве первого варианта.

Правда, они были удалены из Android в 2.2, но также были вновь добавлены в 4.4 и теперь поддерживаются последней версией всех основных платформ. См. http://caniuse.com/webworkers, чтобы узнать, в какой версии WebWorkers доступны.

Для браузеров без поддержки WebWorkers я бы рекомендовал запасной вариант с postMessage() или setTimeout(), как подробно описано в Javascript — как избежать блокировки браузера при выполнении тяжелой работы?

person Aron Cederholm    schedule 16.01.2014
comment
Я так понимаю, вам тоже нравятся веб-работники? Глядя на этот список версий, мне просто нужен поддерживающий браузер для нашего приложения. - person David Thielen; 16.01.2014