Internet Explorer 8 Performance Issues

17 באוקטובר 2011

2 comments

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

Now days, I'm leading a team that is developing a large e-commerce site for our customer. Beside advanced e-commerce features, the web application has a very rich UI that includes : high resolutions images, CSS expressions and a lot for JavaScript and jQuery code to support a rich and powerful user experience.

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 :

image005

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 :

image006

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.

Max connection

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 :

image009

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.

JavaScript

IE8 has some serious issues with rendering and running JavaScript files comparing to other browsers as you can see from the following test results for WebKit SunSpider's benchmarks:

image010

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.

Summary

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.

Add comment
facebook linkedin twitter email

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

2 comments

  1. תהילים21 בנובמבר 2011 ב 16:11

    What do you mean when you say "old" if "chrome" Firefox Estate Explorer 9 read the same code?

    Reply
  2. גינות מעוצבות29 בנובמבר 2011 ב 14:52

    I'd love if more detailing analytics system

    Reply