When Written: Oct 2008
Since my last article it has been a busy time in the Web application arena. Google launched their browser; ‘Chrome’ with it’s high performance JavaScript engine called ‘V8’ for those lovers of high performance ‘oily bits’. Having a fast JavaScript engine in your browser will help the performance of any AJAX web application as will the pseudo multi threading built into Chrome. I say pseudo as the JavaScript itself is not multi threaded and nor is it likely to be in the foreseeable future. So to get round this limitation, and use some more of that power on your desktop as well as making the browser less susceptible to crashing, Google has built Chrome to run each tabbed web page and each web plug-in to run in its own process. This way if a page or plug-in becomes unresponsive for what ever reason then the browser should still behave itself and not crash or hang. If in Chrome you press ‘shift’ and ‘Esc’ a Chrome task manager loads up and you can see every thread running, here you can end a rogue process should you need to. This task manager is also located in the developer section as is a rather useful JavaScript debugger and console for developers to see what is happening ‘under the hood’ to your client side code.
My first impressions of Chrome were very favourable, its clean lines and fast rendering of web pages certainly appealed to me. So I did what I do with any new browser, I set it as my default so that every web site I navigate to is loaded into it. That way one soon gets to find the foibles of any new browser. You soon learn if you can live with it. Whilst the rendering of Chrome is supposed to be compliance standard and it uses the same engine as Safari, I found a lot of forum postings were rendered in such a small font as to be unreadable; this and the fact that my copy of Chrome hangs whenever a pdf was opened has caused me to give up using it as my default browser after a couple of months. It is early days for this browser and it is certainly promising but not quite good enough in my opinion, but it is still beta and it has the possibility of becoming a major player.
Sticking with beta browsers for a minute, IE8 beta 2 has escaped and I have this installed on my laptop ( along with Safari, Opera, Firefox and Chrome , just in case! ) Whilst IE8 seems to be a very competent and thankfully, a much more standards compliant browser that it’s predecessor. It is because of this improvement in rendering CSS web sites that I believe one problem Microsoft may have when IE8 is released is that when new users browse certain web sites which have crude, or badly coded browser detection ( often the same ones that currently give rendering problems with Chrome it seems). This browser detection code is used in an attempt to resolve the rendering differences between browsers. We have had this situation before when IE6 came along with its positively independent interpretation of the CSS standards. Many site designers would add code to detect for Microsoft browsers greater than IE5 and offer a different style sheet. Anyone who stopped and thought about this for more than a minute would know that this is a bad idea. As soon as IE7 came along with its more conventional understanding of how CSS should be rendered, and was used to browse these web sites then the browser detection code saw this browser as the broken IE6 and offered specialised style sheets accordingly, which rendered incorrectly in IE7 causing users to think that IE7 was even less standards compliant than it is. I’m sure that the same thing will happen with IE8 as web sites with specific styles for IE7 mistakenly identify IE8 as IE7 or worse IE6. Now, Microsoft has provided IE8 with a compatibility mode, where it will behave like its naughty older brother IE7, but I wonder how many users will install IE8, find that their favourite web sites appear ‘broken’, then declare that iE8 is a piece of ******** and give up with Microsoft’s latest offering, which would be a shame as IE8 does promise rendering that is more faithful to the standards. The recommendations from Microsoft for web developers who need to test for IE8 on their web sites is not to use ‘user-agent’ string detection but rather test for meta tags or the http header information. Another nice feature of IE8 is its client side debugging which is built in, very similar to Google’s Chrome; this can be of great use to developers, but how much use it is to the average user I’m not sure.
One of the on going arguments about Ajax web applications is the behaviour of the browser’s ‘back’ button and what should it do? Should it take the user back to the last stage in the application or should it take the user to the web page before the web application page? This is often a decision that the developer has to make. An extra trick that IE8 supports is window.location.hash which will allow previous urls to be loaded so that the browsers’ ‘back’ button will behave as required within an AJAX web application.
A feature that at first looks very useful to the developer is that IE8 has the ability to tell your web app if it has lost the network connection. However, the fact, that as long as your PC can see your router then it will still think it has internet connection makes this feature about as much use as a chocolate teapot. I will wait until IE8 is out of beta until I try to break it in earnest. The reason for these beta versions is to allow developers test their code before the final version of a new browser is released, so make sure your web site is able to handle these two new browsers which are destined to become major players.
Article by: Mark Newton
Published in: Mark Newton