Tuesday, March 11th, 2008
Steve Souders has posted on IE 8 and performance improvements.
One new nugget of information that I haven’t seen anywhere else is the fact that scripts are now loaded in parallel (and execution is still serial of course):
Increasing parallel downloads makes pages load faster. (For users with slower CPUs or Internet connections it could possibly be worse, but for most users itâ€™s faster.) The HTTP 1.1 spec recommends that browsers only download two items in parallel per hostname, but the spec was written in 1999. Todayâ€™s clients and servers can support more parallel downloads, so IE8 has increased the number of downloads per hostname from 2 to 6.
Increasing parallel downloads makes pages load faster, which is why downloading external scripts (.js files) is so painful. Firefox and IE7 and earlier wonâ€™t start any parallel downloads while downloading an external script. These days, with the greater adoption of Web 2.0 and DHTML, many sites contain multiple scripts which means those pages will have long periods where all other downloads are blocked. Itâ€™s understandable that these scripts need to executed sequentially (code dependencies) but thereâ€™s no reason they couldnâ€™t be downloaded in parallel. And thatâ€™s exactly what IE8 has done. Itâ€™s the first browser Iâ€™ve seen that has implemented this critical improvement for load times. Facebook has got to be thankful for this. They have 17 external scripts on their page. In most browsers this causes the page to load slowly for users coming in with an empty cache. But for users coming in using IE8 the scripts load ~80% faster because theyâ€™re loaded in parallel. In this screenshot showing HTTP requests for Facebook we see parallel script loading, and we also see them loading 6 at-a-time. Both of these IE8 enhancements dramatically speed up pages.
This dove tails nicely with the other items that we have already heard about:
- 6 downloads per host
- data: URIs, which means you embed your rounded corners
I wonder if IE 8 has a total maxconnections limit?
Posted by Dion Almaer at 12:01 am