Показать сообщение отдельно
  #2 (permalink)  
Старый 31.03.2011, 23:56
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

отвечу сам себе, почему этот цикл (снизу) быстрее .. ( время 400 )
*!*while(i++ < b){*/!*
			if( (el = els[i]).tagName === tagname )
			break;
         *!*}*/!*


.. быстрее этого ??

*!*do{*/!*
			if( (el = els[i]).tagName === tagname )
			break;
         *!*} while(i++ < b)*/!*


среднее время второго 481 ms. на 17% медленней.

потому что do{statements}while(bool) сначала делает statements, а потом "думает" в bool, исполнять ли ему цикл еще раз...

а вот while(bool){statements} сначала решает в bool, исполнять ли ему statements,или нет.

таким образом, while(bool){statements} не делает лишнюю работу, которую делает do{statements}while(bool)

я это так понял )

сори за кросспост. надо было апнуть тему.
Ответить с цитированием