Re: Backtracking woes
Re: Backtracking woes
- Subject: Re: Backtracking woes
- From: Anthony Paras <email@hidden>
- Date: Thu, 16 Sep 2004 05:24:51 -0400
Title: Re: Backtracking woes
What I do to keep the users honest is have a hidden field that stores a different id for each response and look for that id in the response:
public void takeValuesFromRequest(WORequest request, WOContext context) {
if (rrid.equals((String)request.formValueForKey("rrid"))) {
super.takeValuesFromRequest(request, context);
}
}
public WOActionResults invokeAction(WORequest request, WOContext context) {
if (rrid.equals((String)request.formValueForKey("rrid"))) {
return super.invokeAction(request, context);
} else {
setErrorString("Your last action could not be processed.
While editing, wait for the page to fully load before clicking any buttons,
and do not use your browser's 'Back' button.");
return this;
}
}
public void appendToResponse(WOResponse response, WOContext context) {
rrid = String.valueOf(System.currentTimeMillis());
super.appendToResponse(response, context);
}
On 9/16/04 3:41 AM, "email@hidden" <email@hidden> wrote:
Hi!
Have a look at the 'Client-side backtracking' sample code on my web page (http://homepage.mac.com/I_love_my/webobjects.html). This allows for detection of client-side backtracking. It also allows for saving and restoring state upon backtracking. I.e. your resultSetCurrentPage ivar can be returned to its previous value when the user backtracks.
Pierre.
http://homepage.mac.com/I_love_my <http://homepage.mac.com/I_love_my/webobjects.html>
-----Original Message-----
From: webobjects-dev-bounces+pierre.bernard=email@hidden [mailto:webobjects-dev-bounces+pierre.bernard=email@hidden]On Behalf Of Benjamin Adair
Sent: Wednesday, September 15, 2004 10:33 PM
To: Apple WO-Dev
Subject: Backtracking woes
Hello all,
I'm getting bit by the whole backtracking thing. I've created a simple web application to allow our webmaster to maintain the users and groups for our web site which authenticates against a MySQL database.
I'm finding pretty much that whenever the user moves forward within the application logic and then backtracks within the browser and attempts to do something else, the application's state doesn't match and I'm having a difficult time thinking of a way (short of setting the backtrack cache to 0 - which doesn't really help so much when the browser doesn't refresh the page in the first place and is so user-unfriendly) to work around things.
A specific example. I have a ivar, resultSetCurrentPage. If the user proceeds to the 2nd page, which increments the ivar, backtracks, and then attempts to edit a user listed on what was the first page.. They'll end up editing the corresponding user from the second page.
I have read through the following chapter on backtracking:
http://developer.apple.com/documentation/WebObjects/Web_Applications/BacktrackingAndCache/chapter_6_section_1.html#//apple_ref/doc/uid/TP30000111
And have played with settings for 'pageRefreshOnBacktrackEnabled' and read through messages from the list that I have saved over the past year and really am not finding much luck.
It is interesting to me that Apple's Webmail application seems to handle this properly.. You can read a message, back track, select a different message to read and it loads properly.
Do I need to reorganize my logic? Is there something more I can do? Any suggestions and help would be greatly appreciated.
TIA
Ben
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden