well...
in theory, if we had special versioning for ajax this magic could work.

On server we would have to maintain page version number and ajax delta.

Let me give you an example:
You load page with version 3 (url says version=3)

then you click an ajax link (twice)
on server the page version is 3 and ajax delta = 2. (internally we could store as 5 i guess).

Then when a request comes, with version 3, we would know that we need to server the version 5 (3 + 2 ajax delta).

on first backbutton, we would have to call special ajax revert action, that would revert the version to 3 + 1 ajax delta and possibly reload the whole page (less work to do, we wouldn't have to track dom changes).

on second backbutton we would have to do the same, reverting to 0 ajax delta (version 3).

all other backbutton pressed would be treated like regular back button presses (no ajax magic).

-Matej



Johan Compagner wrote:
So always remember the last versionnumber for a page that was a normal
request
And all normal and ajax request to that version number will always give the
latest.

What we also could do is have special ajax versioning that doesn't up the
version number
but can be used in an ajax request to rollback. some thing like:

Component[] alteredComponents = page.getVersionManager
().rollbackToAjaxVersion(version)
AjaxRequestTarget.add(alteredComponents)

johan



On 2/8/07, Eelco Hillenius <[EMAIL PROTECTED]> wrote:

On 2/8/07, Matej Knopp <[EMAIL PROTECTED]> wrote:
> Eelco Hillenius wrote:
> > Can't we come up with something smart like recording the last non-ajax
> > request so that when a request for exactly that url comes in after a
> > couple version changing ajax request we now that we have to discard
> > version info but just serve the latest?
> And what if user really pressed the back button and really returned to
> the page with "old" verion number?

Then you would recognize it is not the same url as before the ajax
request(s) and you would just roll back the whole thing to that
version.

Eelco



Reply via email to