Creating DOM Elements

JavaScript performance comparison

Revision 4 of this test case created by Michael

Preparation code

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>
<script>
Benchmark.prototype.setup = function() {
    var baseEl = $('<div class="foo">foo</div>');
};
</script>

Test runner

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

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
Direct Append
$('body').append('<div class="foo">foo</div>');

//Fair clean-up
$('.foo').remove();
pending…
Append Variable
var $div = $('<div/>').attr({
  'class': 'foo'
}).text('foo');
$('body').append($div);

//Fair clean-up
$('.foo').remove();
pending…
Vanilla JavaScript
var div = document.createElement('div');
div.className = 'foo';
div['textContent' in div ? 'textContent' : 'innerText'] = 'foo';
document.body.appendChild(div);

//Fair clean-up
$('.foo').remove();
pending…
Vanilla JavaScript Element Creation with jQuery Append
var div = document.createElement('div');
div.className = 'foo';
div['textContent' in div ? 'textContent' : 'innerText'] = 'foo';
$('body').append(div);

//Fair clean-up
$('.foo').remove();
pending…
jQuery Elegant Creation
$('body').append($('<div/>', {
    "class": 'foo',
    "text": "foo"
}));

//Fair clean-up
$('.foo').remove();
pending…
jQuery Clone
$('body').append(baseEl.clone());

//Fair clean-up
$('.foo').remove();
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:

0 comments

Add a comment