Last active
February 11, 2022 13:05
-
-
Save jpvincent/ea0f85c1d8ad029785b956a0515ca1a4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const timings = performance.getEntriesByType('navigation')[0] | |
const allEntries = performance.getEntries() | |
const customMetrics = allEntries | |
.filter(entry => ['mark', 'measure'].includes(entry.entryType )) // array of PerformanceMark / PerformanceMeasure objects | |
.reduce((final, current) => { // make an object | |
final[current.entryType.toUpperCase() + ' — ' + current.name] // key name : "MARK — loadInAsync que/query_grid_webpart start" | |
= Math.round( | |
current.entryType === 'measure' ? current.duration : current.startTime | |
) | |
return final // object with key looking like this "MARK — loadInAsync que/query_grid_webpart start" and value is number of milliseconds | |
}, {}) | |
// Pour Ivalua en mode DEV seulement | |
var jsTimer = document.getElementById('jsTimerSpan').innerText // ' +0,45' | |
.split(ivScope.UserNumberFormat.NumberDecimalSeparator) // [' +0', '45'] | |
.map(Number) // [0, 45] | |
jsTimer = jsTimer[0] * 1000 + jsTimer[1] * 10 // 450 (en millisecondes) | |
const out = { | |
'Time To First Byte':Math.round(timings.responseStart), | |
'Server response time': Math.round(timings.responseStart - timings.requestStart), | |
// 'Input Latency' ==> plus compliqué, demande de poser des listeners en début de page | |
'First Paint': Math.round(allEntries.filter(entry => entry.name === 'first-paint')[0].startTime), | |
'jsTimer' : jsTimer, | |
// Visual Layout Stability ==> demande de poser des listeners en début de page | |
// JS blocking time ==> demande de poser des listeners en début de page | |
...customMetrics | |
} | |
console.table(out) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment