User Experience for Ajax

The Web Development Sig in Emeryville, CA
usually has great presentations.  This one was from February 27th of
this year, from Bill Scott, Yahoo!'s Ajax Evangelist: 

Designing for

Crafting a great user experience with

Bill does a good job explaining the difference between classic web and Ajax (as opposed to "AJAX"). His concept of an Ajax "Pattern" is interesting too. Basically, he defines an Ajax pattern as having three parts: a trigger, an operation and an update. In concrete terms, a trigger is an event in the browser such as a click, typing text into a text field, etc., an operation is a XHR (XMLHttpRequest) call from the browser to some backend piece of logic, and an update is parsing the result of that XHR call and using it to update some part of the DOM. He walks through three patterns:

  1. Lookup - an example would be responding to a keystroke to autocomplete in a text field.
  2. Persist - an example would be saving the results of editing fields in a grid automatically without having to submit the whole page.
  3. Update - an example would be using a timer trigger to update a dashboard with new information.

He gives a few other examples - drag and drop, message, invoke - along with a good set of principles for designing rich interaction for the web.

Where he really gets going, though, is in section 8 (yes, it's a long presentation) where he talks about thinking in "objects" rather than documents. This fits in nicely with my POV that Ajax is to the webtop what graphics were to the desktop (really, before there was such a thing as a desktop and we were popping our terminals back and forth between text and graphics modes). There is an opportunity to move to a component based rich client framework such as Echo2 (more on them in later posts).

As it stands, Ajax is still in its infancy (or in its wild west phase -- pick your metaphor), and Bill's simple three part "patterns" are emblematic of this. Still, a worthwhile read for those wanting to know how Ajax works and what it means for the future of rich web client design.

The presentation can be found here. (See the "Download Files" link.)