Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3.1 Safari/605.1.15
Safari 18
Mac OS X 10.15.7
Desktop
15 days ago
Test name Executions per second
innerHTML 12751295.0 Ops/sec
replaceChildren 9276551.0 Ops/sec
remove by while 60487960.0 Ops/sec
removeChild by while 60885232.0 Ops/sec
remove by forEach 12744576.0 Ops/sec
HTML Preparation code:
AخA
 
1
<div id="parent"></div>
Script Preparation code:
x
 
const node = document.getElementById('parent');
const child = document.createElement('div')
child.classList.add('child')
child.textContent = 'some text'
for(var i = 0; i < 5000; i++) node.appendChild(child);
Tests:
  • innerHTML

     
    const node = document.getElementById('parent');
    node.innerHTML = '';
  • replaceChildren

     
    const node = document.getElementById('parent');
    node.replaceChildren();
  • remove by while

     
    const node = document.getElementById('parent');
    while(node.firstChild) node.firstChild.remove()
  • removeChild by while

     
    const node = document.getElementById('parent');
    while(node.firstChild) node.removeChild(node.firstChild)
  • remove by forEach

     
    const node = document.querySelectorAll('.child');
    for (const child of node) child.remove()