W3C home > Mailing lists > Public > public-webapi@w3.org > November 2005

Re: Ajax Back/Forward History problem document state by document.save()

From: Laurent <laurent@xulfr.org>
Date: Tue, 22 Nov 2005 17:38:26 +0100
Message-ID: <43834982.6000202@xulfr.org>
To: public-webapi@w3.org

kenny heaton wrote:
> I guess what I am getting at is maybe we do not need more tools to
> help us develop dynamic application and not break the back button.
> Maybe we just need to be smart about the way we design and develop our
> applications, and a set of best practices perhaps. Maybe if you create
> a web app that "breaks the back button", and your users are still
> trying to click the back button, them maybe you need to re-look at the
> way you created and designed your application? Better web application
> usability.
> I wonder what everyone thinks of that, or do web developers really
> need the ability to save the state of a page into history so the user
> can go back to it?

I think we shouldn't mix up the two case of the use of a browser : the 
navigation throw web pages, and the use of a web application. After all, 
a web application is like any other software : the user do some actions, 
and he wants to undo/redo its action in this web app.

I think that all users actions (so, to summary, all DOM mutation that 
the developer do) should be stored, not in the browser history, but in 
the undo/redo stack of the browser. Then the user only need to choice 
the edit/undo or edit/redo item menu in  his browser (or hit CTRL+Z, 
CTRL+SHIFT+z) to cancel or redo an action, like in any other software. 
(the browser could display an undo/redo button in the toolbar to improve 
the accessiblity of this feature)

To store actions in the undo/redo stack, the developer should call the 
*state function. Or better, window object could have such function :

//here, some DOM modification...

startBatch() starts a "transaction". All DOM modifications are 
registered in the transaction. endBatch() store the transaction in the 
undo/redo stack. (The core of the HTML editor of Mozilla works like 
this). So the browser can cancel DOM modifications or replay them.

Received on Tuesday, 22 November 2005 16:55:03 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:16:19 UTC