Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
customElements using Template cloneNode vs. innerHTML
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0
Browser:
Firefox 129
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
JavaScript Template
253713.0 Ops/sec
only innerHTML
247669.2 Ops/sec
DOM Template, repeated getElementById
96442.5 Ops/sec
DOM Template, single getElementById
63523.4 Ops/sec
HTML Preparation code:
<template id="PERFORMANCE-DOM-TEMPLATE"> <span class="simple"></span> </template>
Script Preparation code:
let template = document.createElement("template"); template.innerHTML = `<span class="simple"></span>`; let DOMTemplate = document.getElementById("PERFORMANCE-DOM-TEMPLATE"); customElements.define( "performance-template", class extends HTMLElement { constructor() { super() .attachShadow({ mode: "open", }) .append(template.content.cloneNode(true)); } } ); customElements.define( "performance-innerhtml", class extends HTMLElement { constructor() { super().attachShadow({ mode: "open", }).innerHTML = `<span class="simple"></span>`; } } ); customElements.define( "performance-dom-template", class extends HTMLElement { constructor() { super() .attachShadow({ mode: "open", }) .append(DOMtemplate.content.cloneNode(true)); } } ); customElements.define( "performance-dom-template-getelement", class extends HTMLElement { constructor() { super() .attachShadow({ mode: "open", }) .append( document.getElementById("PERFORMANCE-DOM-TEMPLATE").content.cloneNode(true) ); } } );
Tests:
JavaScript Template
let el = document.createElement("performance-template"); document.body.append(el);
only innerHTML
let el = document.createElement("performance-innerhtml"); document.body.append(el);
DOM Template, repeated getElementById
let el = document.createElement("performance-dom-template-getelement"); document.body.append(el);
DOM Template, single getElementById
let el = document.createElement("performance-dom-template"); document.body.append(el);