AJAX and all that jazz

I have to say, as a long-time non-fan of Javascript, the idea of depending on it to make things *nicer* didn’t really appeal. I think my subconcious was successfully preventing me from following those tempting links on Webreference, Sitepoint and of course Adaptive Path, promising me the ability to take my web apps to the next level, create amazing interactivity while retaining compliance and generally making my life worth living.

Of course, apps like Gmail, which I still remember being amazed by when I first got a look at the beta about a year and a half ago, drag you inexorably toward wanting to get some of the same interactivity action. My old school usability head was still in control though. Then I showed an admin app I’m building to a friend and top notch web geek and he said it’s a lot like AJAX and that was it: I was turning to the Dark Side.

So, what’s the big deal? Can you have funky load-in-the-background stuff and keep the usability? Does losing the back button damn us to interface hell? And can you get all the niceness without going insane from coding Javascript anyway?

Well, so far I think you can. Yes, you lose the back button – that’s one of the main things you can’t get around or easily build any nice alternative. You could have an in-page “back” button (or “undo”, whatever) but that could be interesting to code. In any case, can you normally trust the back button in a web app? I’m pretty sure I wouldn’t trust it when I’m taking a look at my bank account. Of course, that doesn’t apply in the case of things like Google Maps, where going back is a useful feature or would be.

Something I really hate in this kind of app is that you can’t bookmark specific pages (or “views” I suppose we should call it, as there usually *is* only one page.) Google Maps gets this right by having a simple “Link to this page” to get a URL that will take you right to the same view. (Here’s where I’m sat right now…)

At the moment, I’ve tried a couple of toolkits, both of which seem pretty nice: Sajax and xajax. I like the latter’s way of working slightly more, but there’s not a lot in it. More soon, once I’ve given these a proper going over.

So, while this is a *completely* incomplete (can I say that?) look at AJAX, I’m going to be investigating further…