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