Document fragment vs innerHTML vs looped appendChild (v5)

Revision 5 of this benchmark created on


Preparation HTML

<div id="my-div">
</div>

Setup

var div = document.getElementById('my-div')

Teardown



            while (div.firstChild) div.removeChild(div.firstChild);
        
  

Test runner

Ready to run.

Testing in
TestOps/sec
innerHTML
var i = 0,
    str = "",
    dec = 501,
    span = document.createElement("span");

while (dec -= 1) {
   str += '<li>This is my list item number ' + i + '</li>';
i += 1 }

span.innerHTML = str;

div.appendChild(span);
ready
Looped appendChild
var i = 0,
    span = document.createElement("span");

while (i < 500) {
  var el = document.createElement('li');
  el.innerText = 'This is my list item number ' + i;
  span.appendChild(el);
i++ }
div.appendChild(span);
ready
Document fragment
var i = 0, fragment = document.createDocumentFragment();

while (i < 500) {
  var el = document.createElement('li');
  el.innerText = 'This is my list item number ' + i;
  fragment.appendChild(el);
i++; }

div.appendChild(fragment);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.