Internal Server Error
what the voices in my head tell me to write
Monday, April 09, 2007
AJAX is a wonderful technology. It enables web developers to break free of the shackles of having to reload a page every time the user has the tiniest interaction with it. The key word in the previous sentence was “tiniest”. It would be pointless to develop a whole AJAX interface for a web based application were everything was handled asynchronously. It would actually be confusing for the user. Users are now used to that little (and getting smaller with more and better broadband) delay between their action and its consequences. The browser provides them with several visual cues as to what is going on. The throbber throbs, the cursor changes, finally the user sees the page redraw.
These visual cues actually reassure the user. They can see they have done something and something is happening elsewhere as a consequence of their action. If they perform an action and nothing happens at all to tell them that their action is being worked upon they become frustrated. Sooner or later this frustration leads to them doing something that has serious consequences like submitting an order form twice in the time it took for the first AJAX call to be processed or more likely leaving the site and taking their business elsewhere.
The AJAX interface designer has to recognise this problem and try to either work with it or work around it. The classic response is to quickly replace some content with a little count down timer or such like while the actual work gets done and then display the real new content. This works well for most simple content. It provides visual feedback to the user. They know their action will get a response. The users patience is still time limited. No one (apart from flash UI designers) likes sitting looking at a progress bar creep across their screen.
For larger more complex interactions it is probably best to stick with a traditional page reload. That way the user is reassured by the browser that important work is going on. Not some icon that looks sort of like a countdown timer but may be something entirely different.
I think all the good web 2.0 sites recognize this. Flickr uses a lot of AJAX but sensibly restricts it to things that can be quickly updated. Where complex interactions are need such as in its organizr it uses flash. Del.icio.us doesn't use AJAX at all. Digg uses a great deal of AJAX if the user is submitting comments etc but again only for small interactions.
The two areas that seems to work well with lots of AJAX are things like Google Docs and Spreadsheets and its various competitors. I personally think this is because they emulate interfaces and interactions that their users are already very familiar with. Often the interaction is simply typing text. Making something bold is not hard to do quickly. The other is in mapping. Google Maps leads the way here of course and it was many peoples introduction to AJAX. There is something very intuitive about dragging a map around and zooming it. If you could bottle it you could make a fortune. However once again its actually a small interaction at each step. “Move left 2 units” etc.
AJAX is wonderful. It can transform some simple tasks on websites. Don't count on developing an entire AJAX interface and your product being successful though. You can have too much of a good thing essentially.
Permanent link and Comments posted by Rob Cornelius @ Monday, April 09, 2007