Показать сообщение отдельно
Старый 01.10.2011, 18:59
XoJlToH вне форума Посмотреть профиль Отправить личное сообщение для XoJlToH Найти все сообщения от XoJlToH
  № 1  
Ответить с цитированием
XoJlToH
 
Аватар для XoJlToH

Регистрация: Sep 2006
Сообщений: 145
По умолчанию Подвисает FP при обходе XML по e4x

Дано xml документ в 12000 строк и более
Есть флэшка одной из задач которой является обход этого документа.
Обход выполняется несколькими циклами

Код AS3:
var tf:TextField = new TextField();
var idis:Object = new Object(); //имеется некий объект со своими полями. По длине объекта запускаем цикл
for (var i:Number = 0; i < idis.length; i++)
{
	tf.text = "Step " + i + " of " + idis.length; //хотелось бы на этом этапе в текстовом поле увидеть текст
	resumeData(idis[i]);
}
 
function resumeData(idi:Object)
{
	var years:Array = [2009, 2010]
	var indexes:Array = idi.indexes;
	for (var i:Number = 0; i < years.length; i++)
	{
		for (var j:Number = 0; j < indexes.length; j++)
		{
			tf.text = "Обработка данных за " + (years[i]) + "год. Индекс " + indexes[j]; //хотелось бы на этом этапе в текстовом поле увидеть текст
			var riList = _values.xml.*.(@idi == Number(indexes[j]) && @idy == Number(years[i]));
			var r = riList.(@idr == idi.region)[0];
				if (r != undefined)
					{
						//код
					}
		}
	}
}
Комментариями отмечены места где ожидается вывод текста. Вместо этого текст выводится только при завершении всех циклов, если конечно не превышено время ожидания для скрипта. Почему так? И каким образом можно все таки вывести текст? Ставить небольшой дилэй после каждого большого шага?