Escape execution for "fps" after requestAnimationFrame null check has failed
All functions have transformed to async functions.
By utilising PerformanceObserver, async interface allows to decouple from waiting for onload event. User can include an async file and not worry about loading time.
Here are migration examples:
const metrics = navigation();
const metrics = await navigation();
send(all());
No need to wait for window load
all().then(send).catch(console.error);
const metrics = { ...paint(), ...navigation() };
const metrics = Object.assign.apply(null, await Promise.all([ paint(), navigation() ]));
Should not send null value. The rest of the library sends undefined
when no value is available so it gets dropped in JSON stringification.
duration
: Difference between responseEnd and startTimeworker_start
: Time until service worker ran
navigation_type
: navigate, reload, back_forward, prerender
Use max safe integer if result is higher
Time elapsed allows us to have a relative point of comparison between the different measuring.
page_time_elapsed
: milliseconds elapsed since the time origin
Support for internet explorer Number functions (fallback from Number object to global functions)
Completely new interface. Instead of a callback, expose functions that return structured data. It's different