Skip to content

Instantly share code, notes, and snippets.

@okor
Created January 31, 2015 05:45
Show Gist options
  • Save okor/f5a5d05afa96e37f3e2b to your computer and use it in GitHub Desktop.
Save okor/f5a5d05afa96e37f3e2b to your computer and use it in GitHub Desktop.
An attempt to calculate the number of blocking request on a webpage, uncertain of it's accuracy
function estimateNumRequests() {
var netCount = 1; // 1 for the webpage itself
var elements = null;
// all css
elements = document.getElementsByTagName('link');
for (var i = 0; i < elements.length; i++) {
var isStyleSheet = elementAttributeMatches(elements[i], 'rel', 'style') || elementIsTypeOf(elements[i], 'css');
if (elements[i].getAttribute('href') && urlIsRemote(elements[i].getAttribute('href')) && isStyleSheet) {
netCount++;
}
}
// all scripts, exclude async (?) && !!!elements[i].async
elements = document.getElementsByTagName('script');
for (var i = 0; i < elements.length; i++) {
if ( urlIsRemote(elements[i].getAttribute('src')) ) {
netCount++;
}
}
// all images
elements = document.getElementsByTagName('img');
for (var i = 0; i < elements.length; i++) {
if ( urlIsRemote(elements[i].getAttribute('src')) ) {
netCount++;
}
}
// all background images
elements = document.getElementsByTagName('*');
for (var i = 0; i < elements.length; i++) {
if ( elements[i].style && elements[i].style.backgroundImage && urlIsRemote(elements[i].style.backgroundImage) ) {
netCount++;
}
}
return netCount;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment