Issues of state

Jay Loden python at jayloden.com
Thu Aug 9 12:17:02 EDT 2007


Steve Holden wrote:
> As far as I'm concerned the major issue with trying to have "desktop web 
> apps" compete with true windowed applications is the difficulty of 
> maintaining sensible interactions with the interface. AJAX designs have 
> increased the interaction level at the expense of greater complexity - 
> there is more state to be transferred, and a much higher interaction 
> rate with the server. But the browser is a terrible front-end for AJAX 
> designs because it doesn't record the state changes that take place as a 
> result of requests for updated InnerHTML content, so if the user is 
> unwise enough to press the "back" button she loses all traces of the 
> non-page interactions that have taken place since the page was loaded.
> 
> So "desktop web apps" should ensure that they get displayed in browser 
> windows with minimal user interface decoration. But even then there's 
> always that chance that sophisticated users will use keyboard shortcuts 
> like ALT-left-arrow.
> 
> That, in summary, is why my 2004 PyCon paper[1] was subtitled "The Back 
> Button is Not Your Friend".
> 
> regards
>   Steve
> 
> [1]: http://www.python.org/pycon/dc2004/papers/18/Setting_A_Context.pdf

There's been some interesting work done in that area as well:

http://dev2dev.bea.com/pub/a/2006/01/ajax-back-button.html
http://www.isolani.co.uk/blog/javascript/FixingTheBackButtonThatAjaxBroke

In particular, the RSH (Really Simple History) Framework is an open source
solution to the problem:

http://www.onjava.com/pub/a/onjava/2005/10/26/ajax-handling-bookmarks-and-back-button.html

Like most things involving dynamic client side-javascript code and AJAX
technology, it's a lot harder than you'd like it to be to solve the problem, but
in cases where the Back button is really an issue, it's worth the effort.

-Jay



More information about the Python-list mailing list