Skip to content

Instantly share code, notes, and snippets.

@nucliweb
Forked from addyosmani/custom-metrics.js
Created June 15, 2020 06:34
Show Gist options
  • Save nucliweb/5389690ed8b3f4002e0f3c1f89e92414 to your computer and use it in GitHub Desktop.
Save nucliweb/5389690ed8b3f4002e0f3c1f89e92414 to your computer and use it in GitHub Desktop.
custom-metrics.js
[lcp]
const po = new PerformanceObserver(() => {});
po.observe({type: 'largest-contentful-paint', buffered: true});
const lastEntry = po.takeRecords().slice(-1)[0];
return lastEntry.renderTime || lastEntry.loadTime;
[cls]
const po = new PerformanceObserver(() => {});
po.observe({type: 'layout-shift', buffered: true});
return po.takeRecords().reduce((val, entry) => val + entry.value, 0);
[fid]
const po = new PerformanceObserver(() => {});
po.observe({type: 'first-input', buffered: true});
const lastEntry = po.takeRecords().slice(-1)[0];
return lastEntry.processingStart - lastEntry.startTime;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment