A plea to those just getting started with AJAX
Monday, 24 July 2006Never do this. You will burn in hell.
Never do this. You will burn in hell.
« I’m off to Yahoo! London
Improving the YUI logger »
Steve Webster is a Senior Web Developer for Yahoo! in London, UK.
He is more than a little concerned that he defines himself in terms of his career, and that he talks about himself in the third person.
Find out more
Explain why....
Leo | Monday, 24 July 2006 | 5:24 pmExplain why….
It looks pretty intresting but I see where he is
Faisal Abid | Monday, 24 July 2006 | 6:31 pmIt looks pretty intresting but I see where he is going at, I think what he is trying to point out that this will be too much for 56k users to handle. I might be wrong, but i guess that could be why
It has nothing to do with bandwidth and everything to
Steve | Monday, 24 July 2006 | 9:33 pmIt has nothing to do with bandwidth and everything to do with usability. Suggesting that frames are replaced by AJAX navigation is like suggesting that George Dubbya should be replaced by Pol Pot. Or, to put it another way, its like jumping out of the frying pan and into the fire.
Using AJAX navigation in the way suggested by the article breaks back button functionality, browser history, search engine indexing, accessibility and probably a whole bunch of other stuff. This is everything that was wrong with frames, plus a whole new bunch of nasties.
Hey I write that script and I see you was
Michael | Friday, 28 July 2006 | 2:10 amHey I write that script and I see you was linking to it just to burn it down.
Steve I writed this script free for the look it does what it does and there is noting wrong with this its a fact that AJAX break Usability but so does flash and that is where your page all about! But there are fixes for this! Maybe I was a little fast telling its a replacement for frames but its a little better and its nice that the page not have to reload! And the true is that in the time that we live my clients not care a ratass about accessibility and the search engine indexing will be ok with this like you know bots like google will scan all the source code not what is showing on the page so it will index!
Michael: The reason I wrote what I did is that
Steve | Friday, 28 July 2006 | 8:06 amMichael: The reason I wrote what I did is that I could see a lot of those new to JavaScript and AJAX thinking that using AJAX navigation for your entire site is a good idea. The point is, if you have code such as yours and you turn of JavaScript, your site is then completely broken.
At the moment we have a lot of tools at our disposal, and it is important for those of us who give advice to make sure that the advice we are giving is sound. What you are advocating with your script is that you’re willing to sacrifice usability and accessibility for the sake of cutting out a page refresh. IMHO that is a very bad idea indeed, and it is dangerous to give our such advice without explaining the pitfalls for inexperienced developers.
Wherever possible, JavaScript-added functionality should be a progressive enhancement (the latest industry buzzword) such that browsers without JavaScript will still be able to use the website. Maybe they won’t have all the bells and whistles (the enhanced bit) but it would still be fully functional. A better way to have coded the site would be to have the anchors link to the proper pages, and then manipulate the document using DOM scripting to add in the AJAX page loading functionality. Be aware, however, that this only really solves part of the problem; your back button and bookmarking will still be broken, and the content is still not wholly accessible if the user has JavaScript turned on in their browser.
Personally, I’d need a very, very good reason in order to contemplate using AJAX for the navigation of an entire site, much like I’d need a good reason to use iframes. Sometimes those reasons will be compelling enough to overcome the massive disadvantages, but not often.
With regards to clients not giving a rats ass about accessibility, that’s becoming an increasingly legal responsibility. Here in the UK you have to take “reasonable steps” to make sure that the sites you build or commission are accessible to disabled users. I’m not clear on whether the legal responsibility falls with the developers or the client, but the moral responsibility definitely sits with the developer. It’s our industry and our clients are paying us as much for our expertise as our skills, and we are responsible for helping them to understand why usability and accessibility are so important.
Well said Steve, the use of enhancement is definitely where
Danny-T | Friday, 15 September 2006 | 6:23 pmWell said Steve, the use of enhancement is definitely where AJAX sits, and I agree with your comments on moral reponsibility. I also would suggest the ins and outs of accessibility are discussed with the client up front, so as to make it their decision if they want to spend their money on developer time making a site accessible.
However just so as not to suck up too much:
“it is important for those of us who give advice to make sure that the advice we are giving is sound”… good point
“Never do this. You will burn in hell.” … not so much “sound advice”