Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
createElement vs innerHTML for creating elements in DOM vs DocumentFragment
(version: 1)
Speed of inserting DOM elements by various methods
Comparing performance of:
createElement vs innerHTML vs innerHTML append vs DocumentFragment
Created:
6 months ago
by:
Registered User
Jump to the latest result
HTML Preparation code:
<div id="container"></div>
Tests:
createElement
const container = document.getElementById('container'); container.innerHTML = ''; for (let i = 0; i < 1000; i++) { const div = document.createElement('div'); const p = document.createElement('d'); p.classList.add('font-bold'); p.textContent = 'Hello'+i+'!'; div.appendChild(p); container.appendChild(div); } /*cleanup*/ container.innerHTML = '';
innerHTML
const container = document.getElementById('container'); container.innerHTML = ''; for (let i = 0; i < 1000; i++) { container.innerHTML += '<div><p class="font-bold">Hello'+i+'!</p></div>'; } /*cleanup*/ container.innerHTML = '';
innerHTML append
const container = document.getElementById('container'); container.innerHTML = ''; for (let i = 0; i < 1000; i++) { container.append('<div><p class="font-bold">Hello'+i+'!</p></div>'); } /*cleanup*/ container.innerHTML = '';
DocumentFragment
const container = document.getElementById('container'); container.innerHTML = ''; const fragment=document.createDocumentFragment(); for (let i = 0; i < 1000; i++) { const div = document.createElement('div'); const p = document.createElement('d'); p.classList.add('font-bold'); p.textContent = 'Hello'+i+'!'; div.appendChild(p); fragment.appendChild(div); } container.appendChild(fragment); /*cleanup*/ container.innerHTML = '';
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (4)
Previous results
Fork
Test case name
Result
createElement
innerHTML
innerHTML append
DocumentFragment
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
6 months ago
)
User agent:
Mozilla/5.0 (X11; Linux x86_64; rv:144.0) Gecko/20100101 Firefox/144.0
Browser/OS:
Firefox 144 on Linux
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
createElement
91.0 Ops/sec
innerHTML
0.9 Ops/sec
innerHTML append
355.5 Ops/sec
DocumentFragment
310.9 Ops/sec
Related benchmarks:
createElement vs cloneNode vs innerHTML
createElement vs cloneNode (not deep) vs innerHTML
createElement vs cloneNode vs innerHTML for multi elements with optimized loops
createElement vs innerHTML for creating elements in DOM
createElement vs cloneNode vs innerHTML(template)
L0n1 createElement vs cloneNode vs innerHTML
createElement vs cloneNode vs innerHTML (Apua)
createElement vs cloneNode vs innerHTML vs innerHTML(single innerHTML)
createElement vs cloneNode vs innerHTML 2
Comments
Confirm delete:
Do you really want to delete benchmark?