Comments 3
Даже хотя этот метод даёт возможность работать с интервалами времени, которые меньше миллисекунды, отправка сообщений в главный поток работает асинхронно. То есть, нельзя произвести некие действия в главном потоке с той же точностью, с которой в воркере принимается решение о том, что эти действия нужно произвести.
Непонятно, почему это считается минусом. В общем виде, в браузере любые действия могут быть произведены максимум со скоростью браузера и точностью браузера. Переделывать DOM (или даже рисовать на canvas) с микросекундной точностью у вас просто не выйдет в любом случае (не знаю насчёт WebGL, может быть там выйдет). Но в любом случае, браузер совершенно не гарантирует реалтаймовое исполнение какого угодно кода. Во всяком случае, пока вы не напишете ваш собственный браузер, который будет гарантировать.
Бесконечный цикл в веб-воркере не приостанавливается в том случае, если вкладка, связанная с ним, неактивна.
Периоды неактивности вкладки можно «улавливать» и управлять воркером соответственным образом.
Насколько знаю, все эти способы завязаны на системный таймер, который вызывается с интервалом 20… 50 мс. То есть, если запустить их в цикле, за час набежит погрешность до минуты
Sign up to leave a comment.
JavaScript и кое-что ещё: 4 креативных подхода к измерению времени в браузерах