jQuery append vs html vs innerHTML list performance

JavaScript performance comparison

Revision 2 of this test case created by johngag

Info

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

Preparation code

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<div id="list">
</div>
<script>
Benchmark.prototype.setup = function() {
    var len = 20;
};
</script>

Preparation code output

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
jquery .append()
for (var i = 0; i < len; i++) {
  $('#list').append('<div>Test ' + i + '</div>');
}
pending…
jQuery .html()
var html = '';
for (var i = 0; i < len; i++) {
  html += '<div>Test ' + i + '</div>';
}

$('#list').html(html);
pending…
javascript innerHTML
var html = '';
for (var i = 0; i < len; i++) {
  html += '<div>Test ' + i + '</div>';
}

document.getElementById('list').innerHTML = html;
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

1 comment

Grant commented :

I think your test is missing an important aspect. I think if you held your data var for the jQuery append like you did in innerHTML and only did one append vs many you would find append quicker.

Comment form temporarily disabled.

Add a comment