Listen to the Computerworld TechCast: AJAX

Although the acronym AJAX is fairly straightforward, derived from Asynchronous JavaScript and XML, it's significant because it captures a paradigm shift in the delivery of Web page content.

The AJAX approach to Web content delivery speeds up the user interface. The long wait for an entire page to refresh from a Web server isn't necessary in an AJAX-based application. Only that part of a Web page that needs to be updated is altered, and the update is done locally, if possible, and asynchronously. The user can continue to interact with the Web page while JavaScript on the client minimizes interactions with the server, and information passing between client and server is done in the background.



For developers not yet using AJAX, any change to a Web page requires a full client/server interaction. For example, a request to insert a newly typed item into a list (say, an additional DVD selection into a Web shopping cart) requires a series of steps: After the new item name (the DVD title) is entered into a form, it's passed back to a server. The server then generates a new Web page. That page is transmitted back to the client, and the client's entire Web page screen gets refreshed. The URL at the top of the Web page reflects the transaction that has just occurred.

Interact Locally

In contrast, in an AJAX-based Web application, the interaction looks like this: The user types a new item into an input box. JavaScript, running on the user's computer, inserts the item into the list and refreshes only a few lines of the Web page. The server is entirely cut out of the interaction, and the URL at the top of the Web page doesn't change.

Even if client/server interaction had been needed, say to retrieve the latest discount price for the DVD, that could have been done interactively, and the response time of the user interface would have been more like that of a program running solely on the local machine.

The AJAX acronym was born on Feb. 18, 2005, when it first appeared in a paper titled "Ajax: A New Approach to Web Applications" , which was written by Jesse James Garrett, a founder of Web consultancy Adaptive Path LLC. The term has generated a lot of buzz among developers and bloggers so far this year, but it's only the name that's new.

In his essay, Garrett points to existing Google applications—Google Groups, Suggest, Maps and Gmail—as examples of the new paradigm in Web interaction design. Google Maps doesn't jerk and stall as a user pans the field of view across an apparently limitless map. The older paradigm requires the user to click on an arrow in the requested panning direction, which is followed by an hourglass hiatus while the map server creates the desired view and downloads it to the local machine.

The following technologies and protocols used in AJAX had been around for a while before Garrett specified them in his essay:

• XHTML and Cascading Style Sheets (CSS) for presentation.

• Document Object Model for dynamic display.

• XML and Extensible Stylesheet Language Transformations for data interchange.

• Microsoft's XMLHttpRequest for asynchronous client/server interaction.

• JavaScript to run commands on the client machine.

Until recently, however, some crucial pieces weren't in place to bring the technologies together. As Adam Bosworth, vice president of engineering at BEA Systems Inc., wrote in a recent blog on the subject, "The physics didn't work in 1997." Without the wide adoption of broadband, Bosworth points out, downloading the required JavaScript for local control (often as much as 10,000 to 20,000 lines of code) took too long.

1 2 Page 1
Page 1 of 2
Shop Tech Products at Amazon