Сообщение от ksa
|
Еще один setTimeout()...
|
setTimeout не запускает новый процесс. Он просто ставит обработчик в очередь внутри одного процесса
Сообщение от ksa
|
А сами изменения на клиенте может запускать процесс-обработчик некими "порциями".
Подготовил N-ное количество - запускай setTimeout(), который все N штук и отрисует...
|
И зачем setTimeout, если есть requestIdleCallback?
Используя setTimeout, мы тупо пихаем очередное задание в очередь, не зная сильно ли она заполнена. Есть ли у браузера время обработать это задание не тормозя прорисовку. А requestIdleCallback выполняет задание именно тогда, когда браузер не занят обработкой событий, пересчетом стилей и прорисовкой. К тому же внутри задания можно узнать, осталось ли еще время, что бы посчитать очередную порцию.