Skip to content

Instantly share code, notes, and snippets.

@mmocny
Last active November 22, 2024 00:09
Show Gist options
  • Select an option

  • Save mmocny/d84177f0352532f72599e5c212ca0a3b to your computer and use it in GitHub Desktop.

Select an option

Save mmocny/d84177f0352532f72599e5c212ca0a3b to your computer and use it in GitHub Desktop.

Revisions

  1. mmocny revised this gist Nov 22, 2024. No changes.
  2. mmocny renamed this gist Nov 22, 2024. 1 changed file with 0 additions and 0 deletions.
  3. mmocny created this gist Nov 22, 2024.
    21 changes: 21 additions & 0 deletions elementtimingallthetimings.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,21 @@

    <!-- Add to <head> or as first script in body before any content -->
    <script type='text/javascript'>
    const observedElements = new WeakSet(); // Keep track of processed elements
    new MutationObserver((mutationsList, observer) => {
    for (let mutation of mutationsList) {
    for (let node of mutation.addedNodes) {
    if (node.nodeType === Node.ELEMENT_NODE && !observedElements.has(node)) {
    node.setAttribute('elementtiming', 'test');
    observedElements.add(node); // Mark the element as processed
    }
    }
    }
    }).observe(document.documentElement, { childList: true, subtree: true });
    new PerformanceObserver((list) => {
    list.getEntries().forEach((entry) => {
    console.log(entry.intersectionRect);
    console.log(entry);
    })
    }).observe({type: "element", buferred: true});
    </script>