What is really AJAX?
A little upfront disclaimer, this is an opinionated rant. The ASP.NET Ajax framework and Control Toolkit were officially released last week. I am actually starting to get a little excited with the ability to easily do prudent real-time interactions back to the server from the client.
As I have stated in the past I am not a real huge fan of all the hype AJAX is getting over the past year or so. Do not get me wrong, it is a pretty cool and significant implementation of web technologies, but I think it is sort of haphazardly being used across many sites. Far too often I have seen a site that I was real comfortable with and generally never really noticed the ‘Flicker’ of the screen on a post-back turn into an excruciatingly slow site. Yahoo recently upgraded their Pay-Par-Click administration interface, code name Panama, to a very AJAXy interface. It is painfully slow. MSN’s admin interface for AdCenter was already painful to deal with and just seems to get slower the more AJAX they install. As much as I am starting to hate Google, their interface is the best because it is fast and crisp. There are other real examples, but on to my real useful stuff.
The use of JavaScript and StyleSheets to manipulate the content in the browser is nothing new, I have been doing this stuff since way back in the early 90’s. In fact I built a pretty cool push-pull client for a plant floor system back in the late 90’s I may talk about someday. When I posted my announcement of the ASP.NET Ajax framework I mentioned I was going to try to use the Modal Pop-Up control to display a message to a page visitor. Well my idea was in vain.
My experience with the AJAX Toolkit is relatively limited as I imagine just about anyone outside of Jeff Prosise and Wally McCluer and the .NET AJAX team yours is too. So I try to get some time to work with each control as much as possible. One thing I have realized, and realized quickly is that the majority of the controls are NOT AJAX, they are just DHTML (yah I said it). To me to be AJAX you use the XMLhttpRequest object and actually do real data interaction with the web server.
I read a nice entry from Peter Bromberg this morning on a status update routine. He mentions this too and proceeds to point out how to accomplish this with very little code, http://www.eggheadcafe.com/tutorials/aspnet/87272b03-adec-45e1-b157-b21da3714dfd/how-to-display-an-animate.aspx. I agree and we need to come to grips with what AJAX is and what it is not.
Wikipedia defines AJAX as:
"Ajax, shorthand for Asynchronous JavaScript and XML, is a web development technique for creating interactive web applications."
From now own, please do me and everyone a favor, only call your AJAX code AJAX if it actually uses the XMLhttpRequest object to interact with the server and is an Asynchornous routine. Otherwise it is just JavaScript and Stylesheets or DHTML. These controls are overhead overkill and they are killing my patience waiting on simple things to update in my browser. And please keep your overhead low, it just saves everyone time and money.