jQuery append vs html vs innerHTML list performance

JavaScript performance comparison

Revision 81 of this test case created

Info

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

Preparation code

<script src="//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()
//var html = null;
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++) {
 $('#list').html( '<div>Test ' + i + '</div>');
}
 
 
pending…
javascript innerHTML
//var list = document.getElementById('list');
//var s = null;
for (var i = 0; i < len; i++) {
 document.getElementById('list').innerHTML = '<div>Test ' + i + '</div>';
}
 
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

Ivan commented :

This is nonsense; you test the performance of nothing this way because you added the selectors inside the test loop. You need to cache the DOM elements and only test innerHTML, append etc. otherwise the results are of no real use as they include the finding of the elements too. Understand the DOM API and only start doing tests after you understand it. ;)

Add a comment