Иногда они пугают нас

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 оказалась любопытной, да.

Послезавтра отпуск, мне в него пора.

Комментарии временно отключены.