Creating complex elements (v15)

Revision 15 of this benchmark created on


Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

Setup

var html = "<table><tr><td></td></tr></table>";
    var body = document.getElementsByTagName('body')[0];
    var $body = $('body');

Test runner

Ready to run.

Testing in
TestOps/sec
Create elements by hand and append one after the other
var mdiv = document.createElement('div');
var mtab = document.createElement('table');
var mtr = document.createElement('tr');
var mtd = document.createElement('td');

mtr.appendChild( mtd );
mtab.appendChild( mtr );
mdiv.appendChild( mtab );


document.getElementsByTagName('body')[0].appendChild(mdiv);
 
ready
Create elements by hand but still using jQuery
function create() {
  return $("<div>").append($("<table>").append('tr').append('td'));
}
$("body").append(create());
ready
Using innerHTML
var div = document.createElement('div')
div.innerHTML = html;
document.getElementsByTagName('body')[0].appendChild(div);
 
ready
Raw Create
var div = document.createElement('div')
document.getElementsByTagName('body')[0].appendChild(div);
ready
Pointer - Raw Create
var div = document.createElement('div')
body.appendChild(div);
ready
jQuery Standard
$("body").append(html);
ready
Pointer jQuery Standard
$body.append(html);
ready
Manual
var mdiv = document.createElement('div');
var mtab = document.createElement('table');
var mtr = document.createElement('tr');
var mtd = document.createElement('td');

mtr.appendChild( mtd );
mtab.appendChild( mtr );
mdiv.appendChild( mtab );


body.appendChild(mdiv);
ready

Revisions

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