Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Chrome 122
Mac OS X 10.15.7
Desktop
one year ago
Test name Executions per second
Remove firstChild 10291701.0 Ops/sec
Remove lastChild 10280178.0 Ops/sec
innerHTML 8593443.0 Ops/sec
innerText 7444265.0 Ops/sec
textContent 8397485.0 Ops/sec
firstChild.remove 10332918.0 Ops/sec
range 2685014.0 Ops/sec
replaceChildren 7788756.5 Ops/sec
HTML Preparation code:
AخA
 
1
<div id='messages'></div>
Script Preparation code:
 
let list = document.getElementById("messages");
for(i=0; i<1000; i++) {
    list.innerHTML += "<span>Text</span>"
}
Tests:
  • Remove firstChild

     
    let list = document.getElementById("messages");
    while (list.firstChild) {
        list.removeChild(list.firstChild);
    }
  • Remove lastChild

     
    let list = document.getElementById("messages");
    while (list.firstChild) {
        list.removeChild(list.firstChild);
    }
  • innerHTML

     
    document.getElementById("messages").innerHTML = "";
  • innerText

     
    document.getElementById("messages").innerText = "";
  • textContent

     
    document.getElementById("messages").textContent = "";
  • firstChild.remove

     
    let list = document.getElementById("messages");
    while (list.firstChild) {
        list.firstChild.remove()
    }
  • range

     
    var range = new Range();
    range.selectNodeContents(document.getElementById("messages"));
    range.deleteContents();
  • replaceChildren

     
    let list = document.getElementById("messages");
    list.replaceChildren()