HTML Preparation code:
x
 
1
<div class='container'>
2
  <div>
3
    <a href="#">link</a>
4
  </div>
5
</div>
6
7
<div id="appendedItems"></div>
Tests:
  • createElement

     
    var itemsContainer = document.getElementById('appendedItems');
    for (i=0; i < 10000; i++) {
      var fragment = document.createDocumentFragment();
      var container = document.createElement('div');
      container.className = 'container';
      var div = document.createElement('div');
      var a = document.createElement('a');
      var aTextNode = document.createTextNode('link');
      a.href = '#';
      a.appendChild(aTextNode);
      div.appendChild(a);
      container.appendChild(div);
      fragment.appendChild(container);
      itemsContainer.appendChild(fragment);
    }
  • cloneNode

     
    var itemsContainer = document.getElementById('appendedItems');
    var container = document.querySelector('.container');
    for (i=0; i < 10000; i++) {
      var fragment = document.createDocumentFragment();
      
      var cloned = container.cloneNode(true);
      var a = cloned.querySelector('a');
      a.href = '##';
      a.textContent = 'newLink';
      
      fragment.appendChild(cloned);
      itemsContainer.appendChild(fragment);
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    createElement
    cloneNode

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 6 months ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
Chrome 128 on Windows
View result in a separate tab
Test name Executions per second
createElement 10.1 Ops/sec
cloneNode 11.4 Ops/sec