I have been meaning to write something about my thoughts on AJAX, discount and I just had a dream about it last night, this so I thought I should really get it out of my head. (First off, to my defense: it’s not that weird that I dream about coding a lot, it’s the last thing I do before I go to sleep and that’s generally hours after the last time I had a normal conversation because I go to sleep and wake up late. I am not a freak! :P).
Now onto the AJAX:
For those of you who aren’t familiar with AJAX, it’s the name given to the cool use of Javascript that sends XML back and forth to a web-server without having to load entire new pages. Probably the place that most of you have seen this is in the Gmail Beta.
It is a great idea to be able to just send the data and let your DHTML (just another name for HTML that uses Javascript to change the actual HTML on the page) change everything. There really isn’t a need to re-send all of the code for your menus and main tables, divs, etc. However, I’m not a big fan of a lot of the uses of AJAX that I have seen lately.
My main complaint is that people are making their enitre pages with AJAX (like Gmail) and this is screwing up the normal usage conventions that people are used to. Primarily, the use of the back and forward buttons. In gmail, if you press “back” from just about any page, you get sent to a page that redirects you to the inbox again. Since most pages are one page away from the Inbox, this usually makes sense. But if you go to Gmail, see that you have no new mail, and you want go back to the previous page, you press back and also get redirected to the inbox. So you have to press back twice really fast! This is just one of the many forward/back issues with Gmail that won’t make sense to most people. Not all users know how webpages are written… and they shouldn’t need to.
A general theory I’m proposing is that AJAX should be used mainly for things such as filling in select-boxes with options from a database, and other small in-page changes. These can still be very powerful. When a page logically appears to be a different page however, the user should be able to press back/forward as they expect to navigate through the pages. This applies particularly to a website that I find one of my own projects to be in competition with. My implementation won’t look as impressive because it’s not going to use AJAX for everything, but most users are probably going to prefer to be able to go back (logically “up”) as they would expect to be able to.
Don’t listen to me though, I haven’t even written anything in legitimate AJAX yet.