It seems that I have not had much luck with IE7 recently. In my previous post, I discussed a potential bug that is related to the meta refresh tag. As it turned out, that bug seems to only affect certain installations of IE7. For example, the websites that use the meta refresh tag seemed to work fine under IE7 installed on Windows XP, but would not work under Windows 2003 Server. So I am not quite sure as to what exactly caused this problem. Nonetheless, it is indeed quite frustrating since many sites out there only use meta refresh (as opposed to use both meta refresh and java script) to automatically redirect the user to the desired pages.
The problem I am discussing here is related to the handling of large (multi-megabytes) web pages. I have to admit though that it is not a good programming practice to make a web page that big at the first place. But, in many scenarios, especially for online manuals, it is a common practice to have a large amount of information within a single HTML page. The particular problem I am going to show you here is accessing FreeBSD’s user handbook (http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/book.html) using IE7. The HTML page is roughly 4.5 MB, which is fairly sizeable for a single web page. If you try to load this page in IE7, it would block all other operations on the same browser window. If you tried to open a new tab while the page is loading, the whole IE7 window would freeze. I am not sure if the page would eventually load, but when I tried I waited for at least ten minutes and the IE7 windows was still not responsive. Clearly, whether the page eventually loads or not, this performance is unacceptable to the end users.
Trying the same URL with FireFox 2.0 and you would see no problem at all. In order to make sure that this is not just a particular problem with the FreeBSD website, I created a large HTML file on my local computer. I made the file slightly larger (~10 MB) because I was accessing it locally and there’s no network latencies involved. And the same results hold.
The more interesting fact here is that it seems that IE7 is not properly multi-threaded. After all, why would you lock the whole application when one web page is being rendered? This seems to have violated the most fundamental user experience rule.