Как стать автором
Обновить

Комментарии 3

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

Непонятно, почему это считается минусом. В общем виде, в браузере любые действия могут быть произведены максимум со скоростью браузера и точностью браузера. Переделывать DOM (или даже рисовать на canvas) с микросекундной точностью у вас просто не выйдет в любом случае (не знаю насчёт WebGL, может быть там выйдет). Но в любом случае, браузер совершенно не гарантирует реалтаймовое исполнение какого угодно кода. Во всяком случае, пока вы не напишете ваш собственный браузер, который будет гарантировать.

Бесконечный цикл в веб-воркере не приостанавливается в том случае, если вкладка, связанная с ним, неактивна.

Периоды неактивности вкладки можно «улавливать» и управлять воркером соответственным образом.
Насколько знаю, все эти способы завязаны на системный таймер, который вызывается с интервалом 20… 50 мс. То есть, если запустить их в цикле, за час набежит погрешность до минуты
Первый — нет, performance.now будет доставать результат как раз из системного таймера, и не будет накапливать ошибку. Остальные — да.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий