Publishers of technology books, eBooks, and videos for creative people

Home > Articles > Web Design & Development > Usability

Web Design Reference Guide

Hosted by

Ajax (Asynchronous JavaScript and XML)

Last updated Oct 17, 2003.

By Meryl Evans

You may have been hearing the term "Ajax" appearing out of the blue. If not the term, you've most likely seen it in action through Google Suggest, Google Maps, Amazon's A9.com search feature and some of the features on Flickr. In an excellent introduction to the topic in Ajax: A New Approach to Web Applications, Jesse James Garrett defines 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:

Most traditional Web applications work like the following:

If you haven't already, try out Google Maps. Enter an address. Click and drag the map around. Zoom in / zoom out. It's happening real-time. Think about the other Web-based map applications you've used. When you want to zoom in or make a change, you take action and then wait while the server processes your instructions and reloads the page. Google Maps has no waiting—as if the "middleman," which would be the processing time, has been eliminated. Ajax fills in for the middleman.

The definition of asynchronous, according to Dictionary.com, is "A process in a multitasking system whose execution can proceed independently, 'in the background'. Other processes may be started before the asynchronous process has finished."

Synchronous means, "Two or more processes that depend upon the occurrences of specific events such as common timing signals." The traditional Web design model can't process until an event takes place such as the user's action. In Ajax, the Web application becomes a multi-tasker and doesn't need to wait for something to happen before going to the next step.

Garrett says, "Every user action that normally would generate an HTTP request takes the form of a JavaScript call to the Ajax engine instead."

Note that XML isn't always used in Ajax.

Ajax isn't a product or programming language. It's a new way of building applications for asynchronous processing. An analogy: older phones that use a rotary dial. It takes longer and you have to wait for the dial to spin back before entering the next number. Today's phones have touch tones. As soon as you enter one number, you move on to the next. No waiting between numbers. According to Silicon Valley Watcher, a user at the Ajax Summit describes the difference "like the difference between email and IM (instant messaging)."