Skip to content

Instantly share code, notes, and snippets.

@Awais-cb
Created March 23, 2024 20:54
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 Awais-cb/3a1f8eacce022d6e9ec4ed56393293a6 to your computer and use it in GitHub Desktop.
Save Awais-cb/3a1f8eacce022d6e9ec4ed56393293a6 to your computer and use it in GitHub Desktop.
Example of utilizing the resource entry type from Performance Api
function calculateResourceMetrics() {
let resources = window.performance.getEntriesByType('resource');
// Iterate through each resource
resources.forEach(function(resource) {
let transferedOverNetworkSize = `${resource.transferSize/1000}kb`;
let dnsLookupTime = `${resource.domainLookupEnd - resource.domainLookupStart}ms`;
let tcpHandshakeTime = `${resource.connectEnd - resource.connectStart}ms`;
let sslHandshakeTime = 0;
if (resource.secureConnectionStart > 0) {
sslHandshakeTime = resource.connectEnd - resource.secureConnectionStart;
}
sslHandshakeTime = `${sslHandshakeTime}ms`
let ttfb = `${resource.responseStart - resource.requestStart}ms`;
let totalDuration = `${resource.duration}ms (including resource scheduling time by the browser)`;
console.log({
deliveryType: resource.deliveryType,
renderBlockingStatus: resource.renderBlockingStatus,
resourceName: resource.name,
transferedOverNetworkSize,
tcpHandshakeTime,
sslHandshakeTime,
dnsLookupTime,
ttfb,
totalDuration
});
});
}
window.addEventListener('load', function() {
calculateResourceMetrics();
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment