Skip to content

Instantly share code, notes, and snippets.

@glamp
Created November 3, 2020 14:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save glamp/3c6bc81aab67782081bb1f58b1f10ab0 to your computer and use it in GitHub Desktop.
Save glamp/3c6bc81aab67782081bb1f58b1f10ab0 to your computer and use it in GitHub Desktop.
export const calculateLoadTimes = () => {
// Check performance support
if (performance === undefined) {
return [];
}
// Get a list of "resource" performance entries
const resources = performance.getEntriesByType("resource");
if (resources === undefined || resources.length <= 0) {
return [];
}
const timings = [];
for (const resource of resources) {
timings.push({
name: resource.name,
initiatorType: resource.initiatorType,
redirectTime: resource.redirectEnd - resource.redirectStart,
dnsTime: resource.domainLookupEnd - resource.domainLookupStart,
tcpHandshakeTime: resource.connectEnd - resource.connectStart,
secureConnectionTime:
resource.secureConnectionStart > 0
? resource.connectEnd - resource.secureConnectionStart
: 0,
responseTime: resource.responseEnd - resource.responseStart,
fetchUntilResponseEndTime:
resource.fetchStart > 0
? resource.responseEnd - resource.fetchStart
: 0,
requestStartUntilResponseEnd:
resource.requestStart > 0
? resource.responseEnd - resource.requestStart
: 0,
startUntilResponseEnd:
resource.startTime > 0 ? resource.responseEnd - resource.startTime : 0,
});
}
return timings;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment