From 44fccafe7b31c8ffae005225d90a89ef0ecb13de Mon Sep 17 00:00:00 2001 From: Vitaly Tsaplin Date: Mon, 18 Dec 2023 11:30:21 +0100 Subject: [PATCH] feat: improve performance measuring --- solutions/scripts/aem-perf-marks.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/solutions/scripts/aem-perf-marks.js b/solutions/scripts/aem-perf-marks.js index 9e6bd7ca5..0b96d96e7 100644 --- a/solutions/scripts/aem-perf-marks.js +++ b/solutions/scripts/aem-perf-marks.js @@ -34,20 +34,26 @@ const config = { attributeFilter: ['data-section-status', 'data-block-status'], }; +const ids = new Map(); + const observer = new MutationObserver((mutations) => { + mutations.forEach((mutation) => { const { target } = mutation; - // console.debug('MutationObserver', target); // eslint-disable-line no-console + console.debug('MutationObserver', target); // eslint-disable-line no-console if (target.dataset.sectionStatus || target.dataset.blockStatus) { const markName = Array.from(target.classList).join('_'); const status = target.dataset.sectionStatus || target.dataset.blockStatus; - if (status === 'loading') { + if (status === 'initialized') { + ids.set(target, markName); + target.dataset.perfMark = markName; window.PerfMarks.create(markName, { section: target.id }); } else if (status === 'loaded') { - window.PerfMarks.measure(markName); + window.PerfMarks.measure(target.dataset.perfMark); } } }); + // if (element.dataset.sectionStatus) { // const markName = element.classList.join('_'); // if (element.dataset.sectionStatus === 'initialized') {