Introduction to AJAX
AJAX, short for Asynchronous JavaScript And XML, allows you to load data in the background and display it on your webpage, without refreshing the page. This allows you to create websites with much richer functionality. Popular web applications like Gmail, Outlook Web Access, and Google Maps uses AJAX extensively, to provide you with a more responsive, desktop-like experience.
Using AJAX can be a bit cumbersome, because the various browsers have different implementations to support AJAX. Normally this would force you to write code to respond differently, depending on the browser, but fortunately, jQuery has done this for us, which allows us to write AJAX functionality with as little as a single line of code.
You should be aware of the fact that thre are both advantages and disadvantages to using AJAX on your page though, which means that you should always consider carefully before deciding to use it instead of doing a regular postback to the server. Here's a summary:
Advantages
- Your page will be more pleasant to use, when you can update parts of it without a refresh, which causes the browser to flicker and the statusbar to run.
- Because you only load the data you need to update the page, instead of refreshing the entire page, you save bandwidth.
Disadvantages
- Because the updates are done by JavaScript on the client, the state will not register in the browsers history, making it impossible to use the Back and Forward buttons to navigate between various states of the page.
- For the same reason, a specific state can't be bookmarked by the user.
- Data loaded through AJAX won't be indexed by any of the major search engines.
- People using browsers without JavaScript support, or with JavaScript disabled, will not be able to use the functionality that you provide through AJAX.
The first two items on the list may be circumvented though, typically through the use of an iframe and reading and writing data from the part of the URL after the # character.
In the following chapters, you will learn how to use various AJAX related functions of jQuery.