setTimeout как он работает??? 
		
		
		
		Есть у меня задачка одна, вывести большой объем данных на карте, очень большой, от 10 000 объектов, так вот сначала сделал все просто тупо в цикле, но потом понял, что это очень трудно для проца, во время выполнения цикла браузер благополучно зависал секунд на 10. Для борьбы с этой проблемой решил использовать функцию setTimeout с минимальной задержкой, все в общемто получилось, но чтото терзают меня смутные сомнения, всеже setTimeout асинхронная функция, поэтому возник вопрос, а не может ли одна и таже функция запуститься одновременно?  
	В это случае это может нарушить структуру данных, учитывая что счетчик текущей операции увеличивается внутри функции выполнения progressCurent++;  | 
	
		
 не до конца описал условия, сама функция выглядит примерно так: 
	
var progressCurent = 0, arrayList = [];
			
var func = function() 
{
	if( arrayList[progressCurent] )
	{
		// logic ... 
		
		progressCurent++;
		
		setTimeout(func, 10);
	}
}
setTimeout(func, 10);
 | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 Мне кажется гораздо больше шансов у подобного бага при использовании функции setInterval нежели setTimeout ...  | 
	
		
 В вашем коде всё нормально, кроме того, что он будет выполнятся очень медленно. В IE, например, минимально возможная задержка для setTimeout -- 15 мс, в Fx -- 11 мс, в остальных браузерах получше дела обстоят. 
	 | 
	
		
 Цитата: 
	
 Opera: затрачено времени 21887 мс. Firefox: затрачено времени 30952 мс. IE: затрачено времени 94647 мс. Дауж ... и это только 1541 объект, ну как вариант можно увеличить количество операций в одном событии, в данный момент, одно событие одна операция, но все же это лучше чем полностью подвешивать браузер на 10-20 сек на i5, боюсь себе представить что твориться на машинках послабее.  | 
	
		
 namo86, начать стоит с того, зачем столько объектов на карте? Может их можно не все сразу выводить? Расскажи поподробнее 
	 | 
| Часовой пояс GMT +3, время: 15:37. |