Wednesday, December 07, 2005
Why Ajax Sucks (Most of the Time)
For new or inexperienced Web designers, I stand by my original recommendation. Ajax: Just Say No.
With respect to the use of ajax by highly skilled Web designers, I have changed my opinion somewhat: people who really know what they are doing can sometimes use ajax to good effect, though even experienced designers are advised to use ajax as sparingly as possible.
Fundamental Problems with ajax
Part of the genius of Tim Berners-Lee's original design of the Web was a total unification of several concepts in a single idea, the page:- the user's view of the information on the screen
- the unit of navigation (what you get when you click a link or activate a navigation action like a bookmark)
- a textual address used to retrieve information over the net (the URL)
- the storage of the information on the server and the author's editing unit (except if using embedded objects like image files which do require the author to manage multiple files for a page)
Ajax breaks the unified model of the Web and introduce a new way of looking at data that has not been well integrated into the other aspects of the Web. With ajax, the user's view of information on the screen is now determined by a sequence of navigation actions rather than a single navigation action.
Navigation does not work with ajax since the unit of navigation is different from the unit of view. If users create a bookmark in their browser they may not get the same view back when they follow the bookmark at a later date since the bookmark doesn't include a representation of the state of the content on the page.
Even worse, URLs stop working: the addressing information shown at the top of the browser no longer constitutes a complete specification of the information shown in the window. If an author copies the URL in order to include it as a hypertext anchor in one of his or her own pages then that anchor will not lead readers to the desired view but to the initial state of the page. Similarly, if a user decides to send an email message to a friend with the recommendation to check out a page, then copying the URL from the browser will not work if ajax is used since the URL points to the initial page and not to the current view (with the information of interest to the friend). Given that social filtering is one of the most powerful mechanisms for information discovery on the Internet, it is an utter disaster to disable the URL as an addressing mechanism.
Implementation Problems with ajax
In addition to the fundamental problems discussed above, there are several minor problems with the current implementation of ajax pages. These problems will go away over the next few years, but for designs done in 2005 (and maybe even 2006) they will remain a reason to minimize the use of ajax.Users with Ajax-Challenged Browsers
The November 2005 browser statistics from Interse show the following distribution of browser usage:- Ajax Compatible Browsers: 78%
- Speech Browsers: 2%
- Mobile Browsers: 11% of users
- Other browsers or earlier versions: 10% of users
78% of users are using Ajax compatible browsers. A combination which has one of the worst usability problems to be seen on the Web so far: the BACK button in the browser simply didn't work with ajax sites. The BACK feature is an absolutely essential safety net that gives users the confidence to navigate freely in the knowledge that they can always get back to firm ground. We have known from some of the earliest studies of user navigation behaviorthat BACK is the second-most used navigation feature in Web browsers (after the simple "click on a link to follow it" action). Thus, breaking the BACK button is no less than a usability catastrophe.
Combining these two statistics leads to the conclusion that more than a quarter of the users either can't see ajax at all or can only do so while suffering severe usability problems. Even though many of these users will upgrade over the next year, there will probably still be about 10% left by the end of 2006. Remember that many people don't view Web browsing as a central part of their lives and therefore don't invest much effort in keeping up with the changing tools.
Thus, even if ajax improve a design, they only do so for three quarters of the users, meaning that the improvement will have to be substantial to be worth the additional effort and the risk of aggravating the ajax-poor quarter of the users.
Print Problems
Many browsers cannot print ajax pages appropriately. Of course, most browsers don't print anything really well, but at least regular pages normally print in full. With ajax, it is common to have the print command result in the printing of a single column. Printing the full page is difficult with ajax layout: should only the visible part of the content be printed or should the content be allowed to expand and take up more room than it does on the screen?Authoring Problems
The original release of HTML was simple enough that many people learned it without any problems. Ajax is another matter, though. Newsgroups likeajax.web.technology
are filled with questions from Web authors who desperately need to know why their ajax doesn't work as intended. Ajax is currently so hard to learn that many page authors write buggy code. Search Problems
Search engines have trouble with ajax since they don't know what page states to include as navigation units in their index.User Preferences
Many websites that offer users a choice between regular and ajax versions have found that most users prefer ajax-free designs.When It's OK to Use Ajax
If you are working in a Web2.0 company that needs to provide evidence of their technical expertise in order to gain new clients. However, you must remember to keep your offering in beta and make sure that it in the same family as these examples:- geotag-based apps via flash
- tag-based instant messaging via Ruby on Rails
- community podcasts via api mashups
Toward a Richer Node Model
In the long term, we will need a richer model for hypertext nodes on the Web than can be supported by frames. For example, composite nodes, typed nodes, hierarchical nesting of nodes, nodes with different views, and nodes with actions that influence other nodes are all ideas that have been explored in hypertext research. It will be important to retain the positive attributes of the Web as we move toward these richer information structures.Have These Conclusions Changed?
I'll present my newest usability guidelines in the tutorial on Fundamental Guidelines for Web Usability at the Usability Week 2006 conference in New York, San Francisco, London, and Sydney.
Next month: Micropayments will take off in 2006.
other Alertbox columns
If you still want to do Ajax after reading this column, then check the Ajax mistakes list for advice on how to do it with minimal damage.
This is a spoof article. Please compare it with the original and you will see how little it has been changed.
source:http://www.usabilityviews.com/ajaxsucks.html