jQuery append vs html vs innerHTML vs createElement list performance (v157)

Revision 157 of this benchmark created on


Description

Just a simple example showing the speed difference between populating a list with .append() & .html() innerHTML and createElement

Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<div id="list" style="display:none;">
</div>

Setup

var len = 200,$list=$('#list'),list=$list[0];

Test runner

Ready to run.

Testing in
TestOps/sec
jquery .append(jquery)
var i;
for (i = 0; i < len; i++) {
  $list.append($('<div/>',{text:'Test '+i}));
}
ready
jQuery .html()
var html = '',i;
for (i = 0; i < len; i++) {
  html += '<div>Test ' + i + '</div>';
}

$list.html(html);
ready
javascript innerHTML
var html = '',i;

for (i = 0; i < len; i++) {
  html += '<div>Test ' + i + '</div>';
}

list.innerHTML = html;
ready
createElement appendChild
var i,div;
for (i = 0; i < len; i++) {
  div = document.createElement("div");
  div.textContent = "Test "+i;
  list.appendChild(div);
}
ready
jquery .append(html)
var i;
for (i = 0; i < len; i++) {
  $list.append('<div>Test ' + i + '</div>');
}
ready
jquery .append(clone+append)
var i,$div=$('<div/>',{text:'Test '});
for (i = 0; i < len; i++) {
  $list.append($div.clone().append(document.createTextNode(i)));
}
 
ready
insertAdjacentHTML (beforeend)
var html = '',i;

for (i = 0; i < len; i++) {
  html += '<div>Test ' + i + '</div>';
}

list.insertAdjacentHTML ('beforeend', html);
ready

Revisions

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