What *exactly* is AJAX?
ajax
Solution
I think to gain an understanding you have to look into where the XMLHttpRequest came from. It was not a standard part of JavaScript at the time. You could not make asynchronous HTTP requests from the browser with pure JavaScript. The XMLHttpRequest object was first introduced by Microsoft in IE5 as an ActiveX control. So with that in mind, the way we use JavaScript today has evolved from a much simpler scenario.
I suggest you read the Wikipedia page - particularly the history section. There's nothing overtly fabulous about Ajax, it was just a coined term for what was at the time a new way of doing things, and it's stuck.
http://en.wikipedia.org/wiki/AJAX
In particular read the definitive article http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications - this is probably the best way to understand where Ajax came from and indeed what it actually means. Probably most importantly
Defining Ajax
Ajax isn’t a technology. It’s really several technologies, each flourishing in its own right, coming together in powerful new ways. Ajax incorporates:
- standards-based presentation using XHTML and CSS;
- dynamic display and interaction using the Document Object Model;
- data interchange and manipulation using XML and XSLT;
- asynchronous data retrieval using XMLHttpRequest;
- and JavaScript binding everything together.
As noted, the exact definition of Ajax is quite hard to pinpoint these days. The methodologies are prone to updating themselves as the browser evolves, but these were the underlying principles at its conception.
Problem
I know what AJAX stands for. I know javascript passably well. But frankly I'm just not clear on what AJAX is. Because all I know about it is XMLHttpRequest(), but it must be so much more than that. Can someone give a clearer explanation of how AJAX isn't just a certain aspect of perfectly ordinary JavaScript? I can't see how it's anything different. EDIT: I also understand that it allows you to update a page without reloading. That's fantastic, I know. But I still don't see how that's anything more than standard JavaScript.