[Bese-devel] [ucw] back to a past which doesn't exist anymore
Marco Baringer
mb at bese.it
Mon Feb 9 22:31:47 UTC 2004
while playing around with transactions i ran into the following
situation:
suppose components A and B are called sequentially within a
transaction. after the transaction terminates the user is taken to the
"final" component (whatever that may be). now let's suppos the user
returns to the page rendered by A and attempts to follow a link, at
this point our transaction voodoo comes in and simply returns the user
to the "final" component, and this is Good. however let's suppose the
user then returns again but this time goes back to a page rendered by B
and follows a link.
Ascii art:
t ->
A [follow a link] B [follow a link] C [back button * 2] A [back button
* 2] B [follow a link] ERROR
Since the user followed a link on the A "page" (ie the output of the
component A) the session stack was wiped from A onwards, hence we no
longer have any reference the actions available from B and the server
errors.
This is not only a transaction issue, any time we go back to a
componnet and then go back to a component which came after the
component we went back to we'll run inte this inexistent action error.
Having the session stack be a tree would solve this, but what would we
gain? We could simply incode session + frame + action in a single value
and put them in a application wide hash table, then we could update all
the actions which a back action has elimintated, but this would mean
that we'd need to look a basically global variable every time we get a
request, which doesn't seem like a great idea either.
so, i'm stumped.
p.s. - does anybody follow ucw-devel at common-lisp.net from nntp?
--
Marco
Ring the bells that still can ring.
Forget the perfect offering.
There is a crack in everything.
That's how the light gets in.
-Leonard Cohen
More information about the bese-devel
mailing list