6 comments

[ 2.9 ms ] story [ 28.9 ms ] thread
I'm not sure this is completely correct.

Browsers do multiple requests at once, so trying to squeeze everything into as few requests as possible could make things slower as you lose the parallelism.

I would think it would be better to try and make all your requests a similar size. 3x100kb will probably be faster than 1x300kb

The big killer here, especially on 3G/LTE, is latency not throughput. Here in Vancouver, I can get 40Mbit down on LTE, but my ping is in the 300s.

Here's a pretty good post on how latency dominates page load speed after a certain point: http://www.igvita.com/2012/07/19/latency-the-new-web-perform...

By bundling resources, we reduce the number of requests, and the number of round trips.

Disclaimer: I work at Mobify with Peter who authored the post.

But wouldn't 300ms for one request and 300ms for 6 concurrent requests all have the same latency?
Your example may be true, but many sites are actually 100x100kb, spread over 3-5 domains (tracking, ads, etc) and browsers limit the number of concurrent requests to any one domain.

The recommendations here are actually pretty simple (though the image responsiveness can become complex) and are in line with Google's recommendations (https://developers.google.com/speed/pagespeed/), which are also pretty much the same as Yahoo's (http://developer.yahoo.com/performance/rules.html).

Ideally, you'd be doing JavaScript and CSS minification as part of your build or release process and push to a CDN, though some packages do it on the fly and cache the output. It's a surprisingly interesting practice.