Логин:

Пароль:

Форумы
Общие вопросы
Document Object Model
Обсуждаем конференцию
Web Usability (test)

Document Object Model

innerHTML Versus DOM

Тест, кажется, некорректный. На один вызов innerHTML и тебя два DOMовых, естественно, результаты нивелируются. Кроме того, создание пустых дивов - это не совсем интересно, и никому не нужно. Следующее:

<form><textarea id=report rows=30 cols=80></textarea></form>
<button onclick=runTest(testHTML,'innerHTML')>html</button>
<button onclick=runTest(testDOM,'DOM')>DOM</button>

<script>
var cntEls=1000;

function runTest(func,desc){
.var div=document.createElement("DIV");document.body.appendChild(div);
.var d1=new Date();func(div);var d2=new Date();
.document.forms[0].report.value+="\n"+desc+"="+(d2-d1);}

function testHTML(div){
.for(var a=[],i=0;i<cntEls;i++) a[i]="<span id=XX"+i+">"+i+"</span>";
.div.innerHTML=a.join("");}

function testDOM(div){
.for(var i=0;i<cntEls;i++){
..var span=document.createElement("SPAN");
..span.id="YY"+i;
..span.appendChild(document.createTextNode(i));
..div.appendChild(span);}}
</script>

показывает принципиально другие результаты.

Насчет компиляции скрипта во что-то там супер-эффективное - сказки, имхо. Любой вызов ядра требует хотя бы резолюции переменных, причем динамической. Откуда собственно "умный компилятор" знает, что я не назвал свою переменную "document", а свою функцию "appendChild"?
СообщениеАвторДата
Иван04.07.2002 14:40
гоша04.07.2002 23:27
Maniac05.07.2002 10:17
Gilmour05.07.2002 21:26
Shadowkin16.09.2002 14:18
гоша05.07.2002 16:29
Maniac05.07.2002 17:45
гоша05.07.2002 18:39
Гость12.09.2002 20:19
Maniac08.07.2002 09:50
Leechy05.07.2002 19:20
гоша08.07.2002 12:30
Leechy05.07.2002 00:04
Leechy04.07.2002 15:15
Maniac04.07.2002 14:55
Иван04.07.2002 15:10