- Rendering with XHTML and CSS
- Client logic with Javascript and the document object model.
- Communication using asynchronous calls to get XML data with XMLHttpRequest.
Although the technique has just been given a name it seems quite a lot of UIs have already been produced which use this technique. Having a name though, allows people to say “yes, we’ve done that” or “yes we’re doing that”, in a manner similar to the naming of design patterns. Indeed I’m sure that some of my colleagues who have produced rich UIs for various companies using JavaScript will say just that.
Although the hype is just starting, I need to sound a note of caution. If the amount of JavaScript increases above a certain point, then the perceived performance of the UI can degrade significantly. This is mainly due to the load time of the page. Certain commercial products (who will remain nameless) that rely heavily on large quantities of JavaScript are hitting this problem. It’s nothing new, anybody who once tried to bring rich client functionality to the browser using Java Applets (remember those?) knows what I am talking about.