split-time
Version:
A JavaScript library for measuring FCP, LCP. Report real user measurements to tracking tool.
30 lines • 1.13 kB
JavaScript
export const observe = () => {
const INTERVAL = 100;
let pollingTimerId = null;
return new Promise((resolve, reject) => {
pollingTimerId = self.setInterval(() => {
const { timing } = self.performance;
const { domContentLoadedEventStart, domContentLoadedEventEnd, navigationStart } = timing;
if (domContentLoadedEventStart && domContentLoadedEventEnd && navigationStart) {
self.clearInterval(pollingTimerId);
resolve([
new PerformancePaintTiming('first-paint', domContentLoadedEventStart - navigationStart),
new PerformancePaintTiming('first-contentful-paint', domContentLoadedEventEnd - navigationStart)
]);
}
}, INTERVAL);
});
};
class PerformancePaintTiming {
constructor(name, startTime) {
this.duration = 0;
this.entryType = 'paint';
this.name = name;
this.startTime = startTime;
}
toJSON() {
return JSON.stringify(this);
}
}
export default PerformancePaintTiming;
//# sourceMappingURL=paint.js.map