Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
event delegation vs local handlers
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Mobile Safari/537.36 EdgA/131.0.0.0
Browser:
Chrome Mobile 131
Operating system:
Android
Device Platform:
Mobile
Date tested:
one year ago
Test name
Executions per second
one
50839.2 Ops/sec
manyDel
45167.3 Ops/sec
manyLoc
44479.7 Ops/sec
HTML Preparation code:
<ul class='one'> </ul> <ul class='manyDel'> </ul> <ul class='manyLoc'> </ul> <template class='content'> <li><a class='link' data-x='2'></a></li> </template>
Script Preparation code:
var templ = document.querySelector(`.content`); var one = document.querySelector(`.one`); one.append(templ.cloneNode(true).content); var oneLink = one.querySelector(`.link`); var manyDel = document.querySelector(`.manyDel`); var manyDelLinks = []; var manyLoc = document.querySelector(`.manyLoc`); var manyLocLinks = []; var x = 0; function handleEvent(ev) { x += (ev.target.dataset.x|0); } var n = 1000; for (let i = 0; i < n; ++i) { let frag = templ.cloneNode(true).content; manyDelLinks.push(frag.querySelector(`.link`)); manyDel.append(frag); frag = templ.cloneNode(true).content; frag.querySelector(`.link`).addEventListener(`test`, handleEvent); manyLocLinks.push(frag.querySelector(`.link`)); manyLoc.append(frag); } one.addEventListener(`test`, handleEvent); manyDel.addEventListener(`test`, handleEvent);
Tests:
one
oneLink.dispatchEvent(new CustomEvent(`test`, {bubbles : true}));
manyDel
manyDelLinks[(Math.random() * n)|0].dispatchEvent(new CustomEvent(`test`, {bubbles : true}));
manyLoc
manyLocLinks[(Math.random() * n)|0].dispatchEvent(new CustomEvent(`test`, {bubbles : true}));