Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Getting a context: closest vs while loop vs event propagation
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (X11; Linux x86_64; rv:147.0) Gecko/20100101 Firefox/147.0
Browser:
Firefox 147
Operating system:
Linux
Device Platform:
Desktop
Date tested:
2 months ago
Test name
Executions per second
closest with element selector
1580.7 Ops/sec
while loop + tagName check
1702.2 Ops/sec
event propagation
97.5 Ops/sec
HTML Preparation code:
<context-provider id="provider"> <div> <div></div> <div> <span> <span> <span>abc</span> </span> def <span> <span id="foo"></span> </span> </span> ghi </div> </div> </context-provider>
Script Preparation code:
var context = document.getElementById('provider'); var element = document.getElementById('foo'); var SimpleContextEvent = class SimpleContextEvent extends Event { data = null; constructor() { super('context-request', {bubbles: true, composed: true}); } }; context.addEventListener('context-request', event => { event.data = 'abc'; event.stopPropagation(); });
Tests:
closest with element selector
var i = 5000; while (i--) { let ctx = element; ctx = ctx.closest('context-provider'); }
while loop + tagName check
var i = 5000; while (i--) { let ctx = element; while (ctx) { if (ctx.tagName === 'CONTEXT-PROVIDER') { break; } ctx = ctx.parentNode; } }
event propagation
var i = 5000; while (i--) { let ctxEvent = new SimpleContextEvent(); element.dispatchEvent(ctxEvent); }