Иногда они пугают нас
31st March 2006 - 19:58
Шашечки:
while (el.firstChild)
el.removeChild(el.firstChild);
Ехать:
el.innerHTML = "";
Фанатизм без границ™
Update: да уж, зря, оказывается, забыл…
<div id="test">just test</div>
<script type="text/javascript">
var d = document.getElementById("test");
var el = document.createElement("div");
var t = document.createTextNode("Plain Text.");
el.appendChild(t);
for (var i=0; i<10000; i++)
d.appendChild(el.cloneNode(true));
setTimeout(function() {
var t = new Date().getTime();
// ----- 1
//while (d.firstChild)
//d.removeChild(d.firstChild);
// ----- 2
//d.innerHTML = "";
alert(new Date().getTime() - t);
}, 3000);
</script>
Замеры номер раз (removeChild):
- IE 6: 1042, 1021, 1022;
- Opera 9b8212: 200, 210, 210;
- Firefox 1.5.0.1 (20060111): 952, 1021, 952;
Замеры номер два (innerHTML):
- IE: 40, 40, 40;
- Op: 40, 40, 50;
- Fx: 14791, 14631, 14822;
Не ожидал такого Г.
Categories: dHtml | comments: (3)
Комментарии
1. Splurov 1st April 2006 - 12:34
А по производительности не было желания проверить?
Mash:
Хорошая мысля она всегда приходит… Спасибо. См. update.
2. Splurov 1st April 2006 - 16:35
Или у Firefox очень хорошо с DOM или очень плохо с innerHTML :)
3. Vanger 3rd April 2006 - 12:12
innerHTML property is readonly for table elements — table, tr, td :(
http://4vanger.livejournal.com/10085.html
Mash:
Угу, про это я тоже забыл. Хоть и частный случай, но… слив. Зато работа в Mozilla оказалась любопытной, да.
Послезавтра отпуск, мне в него пора.