AJAX has been instrumental in this paradigm shift. No web developer today can afford to ignore AJAX, as the benefits it brings are substantial. People have a lot of misconceptions about AJAX, and what it is. AJAX is not a programming language, it is not a software or an SDK / framework. AJAX stands for Asynchronous JavaScript and XML, it combines the scripting power of JavaScript with XML to provide data for modifying an HTML web page so that HTML is the canvas on which AJAX operates.
The definition of AJAX has now however been expanded to include scripting languages other than JavaScript, and other ways of serializing data than XML. In-fact an application need not even be asynchronous to be AJAX.
What is AJAX?
Its Asynchronous
The Asynchronous nature of AJAX application is perhaps the most important. So what exactly does the Asynchronous in AJAX mean? It means that different parts of a page can load at different times. If you've used G-Mail, or Yahoo Mail, you will see that when you click on an e-mail, it opens in the same window, in minimal time.
Just a few years ago, clicking on a link meant a long wait, while the server processed your request. generated a new page, and then downloaded it to your computer. Now days most web-sites have pages divided into separate widgets, each of which gets data from the server whenever it is available. Each part of the page can load it's content separately, so you have something to look at while the rest of the page loads.
It runs on Javascript
Javascript is the part of AJAX which makes it dynamic in the first place. For those of you who aren't familiar with JavaScript, it is a scripting language that can be used inside a web page to make it more dynamic. From simple cases such as checking whether the information entered in a form is correct, to creating highly interactive web applications, JavaScript is the scripting language of the web.
It uses XML
For anyone who's familiar with HTML, XML is just a stone throw away. XML (Extensible Markup Language), despite its name, is less of a language, than it is a specification of how once can be created. It is composed of data encapsulated within tags, and is designed to be human readable.
Why do we need AJAX?
Using the internet has always seemed to be a much different process than using an application installed on your computer. This is one of the impressions developers want to change, and Ajax allows them to do exactly that. If you use Yahoo Mail's new interface, you will see that it resembles a desktop application more than an internet page. Clicking on an email instantly starts loading it in its pane, or in a new tab, the kind of interaction that had, till now, always been associated with desktop applications. This is very advantageous for people who are new to computer, or the internet, and for novices. To this effect AJAX based sites are known more as web applications or Rich Internet Applications (RIA) than websites.
Designing how a user interacts with an application is a field in itself, called Interaction Design or IxD. A very import factor is how the user expects to interact with the application. By making the web appear and interact more like a desktop application, there is no learning curve involved, and the user can jump right into sending email, or chatting or browsing their image gallery.
Ajax loads data asynchronously, so while you are reading your first email message, other's can be loaded in the background, making them readily available when you decide to open them. You can load the structure of the page initially so that something is readily visible, and load the content separately. This also means that if some of the content changes, that whole page need not be loaded, instead we can just reload the content. This is considerably faster and requires less bandwidth.
Benefits of using AJAX
The benefits of Ajax are only limited by the imagination of the one developing with it. The most common benefits you can immediately see when you use Ajax are:
* You have the ability to make richer, better looking web applications, which behave more like desktop applications.
* The application can be made more responsive.
* There are a large no of AJAX frameworks available.