Today's web sites are getting richer and richer.
In the past rich web sites were usually web sites that were used for promotional purposes, today's demands require that even the most complex web application, has to include rich and user-friendly UI.
so how exactly "old" browsers can hold up with this applications? What should be taken into consideration in the development phase?
Get the facts
One of our customer's main demands : full support for Internet Explorer 8, as about 60 percent of their customer use IE8 as their main browser.
Our first response is IE8 that big? Is it really still a popular browser in late 2011?
Using a quick check in StatCounter.com , we got our answer :
It's seems that IE8 is still the most popular browser of them all.
But why? If you're using IE8, "Windows update" will remind you to upgrade to IE9 and if so , why won't you upgrade?
Well, the plain answer to that is that while IE9 might be the best IE browser for you, if you have "Vista" or "Windows 7" OS, you aren't so lucky if you're still using "Windows XP".
Ok, so our next question was "Are there really so much Windows XP users in late 2011"? and again, StatCounter.com to the rescue :
Why my Internet Explorer has performance issues (version 8 edition)
Although IE8 is such a popular browser is suffers for serious performance issues that should be addressed in the development phase.
Understanding those issues and taking them into consideration early on, should save you a lot for development hours.
each browser has a definition of max connections per server , as defined in RFC2616 : "Clients that use persistent connections SHOULD limit the number of simultaneous connections that they maintain to a given server. A single-user client SHOULD NOT maintain more than 2 connections with any server or proxy."
What it's means is that only 6 (or two narrowband) IE8 requests will be handled simultaneity. Most of the rich pages include tens of requests for the server like this :
You can see from this firebug screen shot the purple section in the time line represent pure waiting time for server.
Lucky for us, Firefox and Chrome decided they don't follow this rule and supports 15 or more connections per server, that's one of the main reasons they are faster.
So what can be done?
Max connection definition can be altered by the client's browser like this, but assuming that you would like a more general approach there's a work around.
Let's say your web application domains is mycompany.com . the max connection definition is by domain name , meaning that you could create for example this domain : images.mycompany.com in your IIS entry, and the browser will automatically will duplicate the number of requests simultaneity.
Create another domain named : resources.mycompany.com for your CSS, JS and AXD files and there you go, you just maxed again the number of connections.
With results like that you should really examine your rendered scripts to the client.
You can either make sure your code is optimized or write a different implementation for IE8.
When writing web application that should support IE8 (and most of the times they would have to), you should take into consideration the above results.
Consider using CDNS, consider creating a different domain from your images and other resources to max your connections.
Developers must be aware of those serious limitations from IE8 , fixing them in performance tuning will be hard and long hour.
Hope that helps.