AJAX, the not-so-new web technology

It seems like the latest buzz word is AJAX, which is an acronym for Asynchronous Javascript and XML, given a name by Jesse James Garrett at Adaptive Path. In a nutshell, standardized web pages (XHTML with CSS) use javascript objects (specifically XMLHttpRequest) to asynchronously post XML (or any other data for that matter) to a URL that will return data. This response data may be manipulated (in the case of XML) using XSLT to modify the currently loaded web page via the DOM.

There are many sites that will tell you that this technology is nothing new or special. While working for my employer, I have been using this technology since I arrived in 2001. In general, the goal was to make our web application “look like” a standard Windows-like application, because of the misconception that our customers would not understand the web and would not like the scrolling that may occur with larger pages. So we implemented a size-restrictive, DHTML application targeted for Internet Explorer. It uses AJAX to exchange XML back and forth, with the client using IE’s non-standard extensions such as HTC (behaviors) and XML data islands. We were able to create a common framework to base our application upon, and we have built 4 or 5 successful application using the technology.

With that said, there are some shortcomings. First, using AJAX is relatively complex and very hard to debug. Since it’s a combination of different technologies, and it is somewhat new, there are very little off-the-shelf components that exhibit the AJAX paradigm. So there is a significant initial investment in custom development.

Second, the amount of data that we passed back and forth was large, document-style XML-RPC request and responses. Some of our customers were smaller, with no broadband access. So passing these XML documents back and fourth on dial-up connections made response times unbearable. It does not help that my employer does not have a large web farm, either. So, in our instance, scalability is an issue.

How does poster child AJAX applications like Google Suggest and Google Maps run so seamlessly? Well, while reverse-engineering their obfuscated client-side javascript and sniffing the requests and responses from Google Suggest, I found out that the data being passed is not XML. it is plain javascript (gzip compressed on HTTP transport) that is eval’ed on-the-fly. I must admit that it is neat, but seems that the development is specifically targeted to exactly one set of functionality. No apparent framework, in the classic sense, it operating here.

So AJAX, the buzzword of the year, does need a direction to maturity. Microsoft is current designing an AJAX-like frameworkand the OSS community is also stepping up. So it would be interesting to see how AJAX plays out in future web development.

%d bloggers like this: