The new breed of web applications such as flickr, google mail, google maps, etc share one thing in common, a technique which has come to be known as AJAX. The term was coined in this classic article from Adaptive Path in February 2005 – if this isn’t ringing any bells, do go read the article… Particle Tree has a similar intro article up that introduces a few new idea to the mix – keeping a fourth degree of separation in web application functionality. For those that don’t feel like clicking, there is a brief cut and paste overview below (if you do read the articles hop to further reading).

Adaptive Path Clip:

“The classic web application model works like this: Most user actions in the interface trigger an HTTP request back to a web server. The server does some processing — retrieving data, crunching numbers, talking to various legacy systems — and then returns an HTML page to the client. [...] This approach makes a lot of technical sense, but it doesn’t make for a great user experience. While the server is doing its thing, what’s the user doing? That’s right, waiting. And at every step in a task, the user waits some more.

Adaptive Path's AJAX Model

An Ajax application eliminates the start-stop-start-stop nature of interaction on the Web by introducing an intermediary — an Ajax engine — between the user and the server. It seems like adding a layer to the application would make it less responsive, but the opposite is true.

Instead of loading a webpage, at the start of the session, the browser loads an Ajax engine — written in JavaScript and usually tucked away in a hidden frame. This engine is responsible for both rendering the interface the user sees and communicating with the server on the user’s behalf. The Ajax engine allows the user’s interaction with the application to happen asynchronously — independent of communication with the server. So the user is never staring at a blank browser window and an hourglass icon, waiting around for the server to do something.”

Advantages to Coding AJAX

  1. Existing web “designers” that want to become web “developers” will have an easier time brushing up on their javascript/DOM skills than learning how to code in pure Java, .NET, etc. The extra time spent learning/relearning also provides skills that can be used on “normal” dynamic websites unlike focusing on building a web application using other technologies.
  2. Web designers with a grasp of coding in strict (x)html and css have a head start in learning how to create the top two layers of the AJAX schema (content and presentation). Likewise XML shouldn’t be too hard to pick up. While it takes some extra work, web applications can be made that degrade gracefully using AJAX, leaving designers in comfortable territory.
  3. For those that already are “developers” – you get to work with a richer, more responsive application. While no one ever knows what the future holds, the applications being made with it now are not only groundbreaking and easy to use but… fun. Chances are “Web 2.0” skills will be a useful thing to have.

Further Reading

Now that the preliminaries are out of the way, I think it’d make more sense to point out some exceptional resources rather than reword what has been said by those more knowledgeable on the subject than I!

There is an upcoming O’Reilly book on the technology / technique – which is going to be heavily based on the content from the AJAX Patterns wiki. It features a full range of content ranging from introductory text to programming patterns (code included). Fiftyfoureleven has a collection of working examples, most of which have source code included.

The acronym doesn’t dictate everything, but merely an approach to creating web pages as this feature at auberger.com outlining the inclusion of PHP and replacing XML with JSON.

The Web 2.0 Workgroup portal page and AJAX Matters are great starting places for those looking for specific articles relating to the technology.

There is a good collection of AJAX related links on Vitaly Friedman’s essential web-developer bookmarks (including some of the ones chosen to be included in this article).