This is a post I made back in September of 2007 on my old website. I have brought it across to here as I still feel it is relevant and useful. My experience and use of Javascript has grown immensly since I originally made the post, but I still believe that it should be used solely for enhancing usability rather than adding functionality.
Anyone who knows me knows that when AJAX was first “the big thing” I was strongly opposed to it. Infact, the first time I used what people would call AJAX was a few months ago in a uni project. From that, I developed a blurb which was my mission statement, you could say, for my use of Javascript:
AJAX [Javascript on the whole], should only be implemented after the page has complete functionality, and should only be used to enhance the usability of the webpage. Every function which is possible through the AJAX, should also be possible in the same or similar way without the AJAX (but usually with an extra page-load or two).
AJAX itself has a number of meanings which come to people, and dispite the obvious cleaning fluid issue, the big one is something which includes heavy client-side scripting, with impressive “live” functionality and breaks with Javascript off. It is because of this that I have decided to coin a new name for the use of AJAX as it should be used (IMHO).
JUE, Javascript Usability Enhancement, is a method of enhancing the usability of a webpage using Javascript, by allowing the content to be reloaded and updated without a full-page refresh. Unlike AJAX, it does not add functionality, it mearly enhances usability of the existing functionality.
There is an important difference between functionality and usability.
On a webpage, Functionality is the ability to do something. For example, submitting data on a form, performing a search, or even clicking on a link and accessing/viewing a web-page. All of that is functionality, all of it needs to be accessable by every user on your webpage. This is also known as accessibility, and is an important part of design.
Usability is how something is done, rather then what is done. So to enhance usability for something, it works on making the functionality easier to use (in whatever form), without adding extra functionality. This means that if the usability enhancements are not valid for a specific group of people, the functionality is still accessable. A good example of this in the world is the humble handrail on a flight of stairs. It is there to enhance the usability of the stairs for those who need something to hold on to, while others might for whatever reason (hands full for example) won’t use the handrail.
In the realm of websites, usability is important and if a pages usability can be enhanced by client-side scripting then it is welcomed by most users. However for a user without the required scripting language turned on, the page still functions the same they just lose some of the usability.
So, the moral of this story? Write JUE on your website, not AJAX!
Note: It is important to note that when it comes to using JUE (or AJAX), it is how it is used. You can call it whatever you like, but if you miss-use it, then not even a fancy well-intended name will save you from its lies.