Internal Server Error

what the voices in my head tell me to write

Monday, April 09, 2007

AJAX pros and cons 

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.

The one thing that in-experienced designers or managers always want is “drag and drop functionality” Macromedia were doing this from Flash 3 / Dreamweaver 4 onwards. And when did you see a drag and drop shopping cart on a web site? Script.aulico.us and other javascript libraries have drag and drop capabilities which are probably a waste of the developers time to write. Why is this. I personally think drag and drop is beyond a lot of non-expert computer users. (even though it is meant for beginners) I have taught computing for the terrified courses. Its there you get a real feeling for users. Yes you become very cynical and jaded but when you have seen people struggling to manage cut and paste or double clicking you realise that anything more complex is beyond most people who use computers. And its no good thinking that in time the level of ignorance will decrease and skill increase. Think of the developing world for instance.

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

Comments: Post a Comment

Links to this post:

Create a Link

links to this post
    follow me on Twitter

    My recent photos


    Creative Commons License
    This work is licensed under a Creative Commons License.

    RSS feeds and things

    Feed Button Help

    This page is powered by Blogger. Isn't yours?

    contact the author

    rob cornelius can be contacted by email use his name with an dot and googles web based email domain