How times change.
I remember a group of my acquaintance being royally reamed because its web application would, under some circumstances, disable the browser Back button or not work properly with it.
Horrendous! Inappropriate! Bad software engineering! Off with their heads!
So now I’m reading all the cool people blogging from CIL about how everything should be done in AJAX–oh, and by the way, you’ll tend to break the Back button.
But that’s OK, because AJAX is 2.0 and cool and the wave of the future.
Hmm.
Walt, yeah, this does seem a bit weird, but I don’t think that this fault should prevent the use of AJAX. It needs to be understood, of course, but I think the benefits of AJAX outweigh some of its drawbacks. A more serious drawback than the back button issue is the accessibility problems, in my view. One other thought, though. This whole issue of breaking the back button on a web browser is not one that’s confined to newer stuff like AJAX. This also continues to be problematic for web-based online catalog interfaces.
I guess the bigger picture that this presents is that web applications, while having come a VERY long way, are still pretty fragile in places.
“It needs to be understood, of course, but I think the benefits of AJAX outweigh some of its drawbacks. ”
I’m not saying I necessarily disagree. I just remember the vehemence over such breakage in the past, and am surprised that “cool” now seems to be the first response. (And, to be sure, that accessibility no longer seems to be a “cool” issue.) The group I refer to made d**n sure that the application in question was fixed to be browser-friendly…as a matter of survival.
What’s interesting is that more fragile applications are being touted as the way to go. My failure to understand the logic of this is yet one more reason why I’ll never be cool.
What confounds me about AJAX is often it is used in situations when other methods work just as well. In fact, I’m hard pressed to think of any application that uses AJAX that couldn’t be done or would be difficult to do using other techniques. About the only thing might be things like google suggest. And that’s a stretch.
Not to say I’m dead set against it. I’ve used similar techniques myself. Just don’t see a reason to do everything with it.
Did we read the same post? The one I read talked about breaking the back button as a downside of AJAX, the AJAX that people are already using, so it’s good to know what is wrong with it.
The weird thing about back-button breaking is that if you really really cared, you could build this functionality back in with the selfsame AJAX (though better not to break it in the first place honestly). I think the lesson to be learned by observing the early AJAX adopters is that the nature of the web as a set of pages connected with links is changing. AJAX embeds program-like functionality into what we had previously thought of as a web “page” and this makes page functions like back and forward work differently.
I don’t think it’s at all cool that many AJAX tools break what we are used to seeing in browser functionality, accessibility in particular and usability second, however it’s a solveable problem, and one that needs to be addressed as people are expecting more and more from their websites and companies are building in more and more features.
I think we did read the same post, and I applaud the speaker for mentioning the AJAX downside. It’s odd that I haven’t seen similar downsides mentioned by most advocates of using the hot new tools for everything; it seems to be All Good in most cases. And, on behalf of acquaintances, I remember how badly burned they were over a well-intentioned move that broke the back button and didn’t have Today’s Hot New Thing as a label.
I think that AJAX interactivity is what starts to make the Back button functionality rather blurred in programmers’ minds.
Clearly, and similarly with a lot of interactive server-side scripted sites, the points to which the Back button returns MUST be clearly defined in relation to the function blocks of the whole application. That is, the Back button must return to specific logical points in the application or to the page previous to the application.
That way, the application will retain its integrity (as well as being easier to debug) and maintain good useability (in terms of user familiarity).
Maybe I’m weird. Thinking about all the AJAXy stuff I’ve used, I don’t think I’ve ever been tempted to use the Back button.
Different people have differently ingrained habits, I think–and some people just don’t want to change those habits. The word most commonly used for breaking the Back button, at least five years ago, was “Evil.” I always thought that was a little extreme… .
Hi, Everyone,
I’m a bit late to this thread, but it’s nice to see an AJAX discussion happening. I was the speaker on AJAX at CIL. I’m not an AJAX advocate, but I see the benefits of the technology as compelling enough to explore. Karen Coombs made the point that previous technologies (frames, applets) created similar problems in holding the http state of the application – breaking the back button. These technologies didn’t adapt and were largley discarded. There seems to be enough interest in AJAX that the development community will attempt to correct the problem. In the meantime, I’ll be building AJAX apps that degrade with javascript turned off or find ways to maintain the states of the page. It’s what we got right now. But, I’m waiting with bated breath for the day when the XMLHttpRequest object (the heavy lifter in all AJAX apps) is part of a server-side language. It’ll happen sooner than we think. (See Ruby on Rails.)
Jason A. Clark
Digital Initiatives Librarian
Montana State University
Welcome to the discussion, Jason, and sorry for the moderation delay. I’m glad I wasn’t in the armed forces; otherwise, I might confuse Ruby on Rails with S.o.a.S., and we wouldn’t want that. (Chipped beef on toast, if you want the polite version.)
A most informative discussion.