A few days back it nearly ruined both my life and my sanity!

When I first started working as a commercial web developer the first idea that really hit me was the use of JavaScript and AJAX. My first senior developer always ranted on at me about ‘graceful degredation’ and I plodded along, blissfully unaware of the implications of ‘enhancing’ a website using JS.

The main issue that I was missing was that a very very very small percentage of users actually do browse with JavaScript disabled. “WHY WOULD YOU DO THAT?”, I thought. I fought for a long time with the idea that someone would actually purposefully disable a feature which makes browsing 10 times easier.

But then I was introduced to websites that AJAX anything that moves or blinks or even looks at them the wrong way. The PRIME example of this is Facebook. Apparently facebook is the holy grail of social networking sites (do not in any way think that is my opinion, who said twitter?).

There is only one way to see the importance of degrading gracefully – browse Facebook with JavaScript disabled (I use the web developer toolbar for Firefox) or at least try to. NOTHING WORKS. How can such a big site with such a huge user base not support a lack of JavaScript, it’s just bad practice.

Many people will of course jump to the conclusions that I did that JavaScript can only be a good thing and that nobody in their right mind would turn it off. After browsing sites like the online job center Monster, I felt like throwing JavaScript out of a very high building. The AJAX functionality actually destroyed my experience.

So. How do I ensure that all the websites I work on are sure not to cause other users the same pain that I felt that day? Do the JavaScript last. Always make sure that there is a static (well kinda) page which can load and save the day if someone is so sick of JS that they have disabled it. Then use JQuery (thank you John Resig for making all of our lives a LOT easier) to enhance the users experience.

JavaScript enhances the users experience it does NOT dictate the users experience.