Figure 17-4. http://www.amazon.com
Amazon (http://www.amazon.com) is a
relatively heavy page with a total page weight of 405K and 84 HTTP
requests. Given the size and number of components in the page, the
biggest performance improvement for Amazon would be to add a far future
Expires header to their components
(Rule 3). Only 3 out of 84 components have an
Expires header. They use only one stylesheet
and three scripts. The scripts are loaded one after the other, so it
would be a simple improvement to combine them into a single HTTP
request. The stylesheet and scripts should be gzipped. The three scripts
are minified to a large degree, but further savings could be gained by
removing all comments and extraneous carriage returns.
Even with the performance improvements identified by YSlow, the sheer number of images in the page (74) is a challenge. Nineteen of these images are used as backgrounds in CSS rules. Converting them into CSS sprites would reduce the total HTTP requests from 84 to 66.
Looking at the subset of HTTP requests shown in the waterfall chart in Figure 17-5, we see that because these images are all requested from the same hostname, only two images are downloaded in parallel, increasing the total page load time. Splitting this large number of images across two hostnames would double the amount of parallel downloads, significantly reducing the end user response time. ...