Browser Diet - DOM Manipulation (v15)

Revision 15 of this benchmark created by John on


Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<div id="myList"></div>

Test runner

Ready to run.

Testing in
TestOps/sec
DOM manipulation every iteration
var myList = document.getElementById("myList");

for (var i = 0; i < 100; i++) {
  myList.innerHTML += "<span>" + i + "</span>";
}
ready
DOM manipulation after all iterations
var myList = "";

for (var i = 0; i < 100; i++) {
  myList += "<span>" + i + "</span>";
}

document.getElementById("myList").innerHTML = myList;
ready
DOM manipulation after caching innerHTML
var myListHTML = document.getElementById("myList").innerHTML;

for (var i = 0; i < 100; i++) {
  myListHTML += "<span>" + i + "</span>";
}
ready
string
var myListHTML = '';

for (var i = 0; i < 100; i++) {
  myListHTML += "<span>" + i + "</span>";
}

document.getElementById("myList").innerHTML = myListHTML;
ready
jQuery
var myListHTML = '';

for (var i = 0; i < 100; i++) {
  myListHTML += "<span>" + i + "</span>";
}

$("#myList").html(myListHTML);
ready
Another
var myListHTML = $("#myList")[0].innerHTML;

for (var i = 0; i < 100; i++) {
  myListHTML += "<span>" + i + "</span>";
}
ready
Meh
var myListHTML = '';

for (var i = 0; i < 100; i++) {
  myListHTML += "<span>" + i + "</span>";
}

$("#myList")[0].innerHTML = myListHTML;
ready

Revisions

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