• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: AJAX and You backtracked too far error
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AJAX and You backtracked too far error


  • Subject: Re: AJAX and You backtracked too far error
  • From: Stirling Olson <email@hidden>
  • Date: Thu, 8 Dec 2005 12:10:33 -0700

Just in case anyone uses this in the future, I believe you need the following line at the bottom of the setIsRPCMethod() function:

context().request().setUserInfo( ui );

Otherwise, this works like a charm.  Thanks Greg.

-Stirling


On Nov 15, 2005, at 4:47 PM, Greg Hulands wrote:


In you super component have a method like

public void setIsRPCMethod() {
		NSDictionary oldUI = context().request().userInfo();
		NSMutableDictionary ui;
		if (oldUI != null)
			ui = new NSMutableDictionary(oldUI);
		else
			ui = new NSMutableDictionary();
		ui.setObjectForKey(new Boolean(true), Session.RPC_COMPONENT_ACTION);
}

and then in Session have

public void savePage(WOComponent page) {
WORequest req = context().request();
if (req != null) {
NSDictionary ui = req.userInfo();
if(ui == null || ui.objectForKey(Session.RPC_COMPONENT_ACTION) == null) {
super.savePage(page);
}
}
}


Then in any component action that is been called through RPC (AJAX) just call the method setIsRPCMethod and you should get this problem.

HTH,
Greg


On 16/11/2005, at 9:36 AM, Ricardo Parada wrote:


I have a little app that displays a page where the user clicks a hyperlink that invokes a component action that starts a thread of a long running process.


The page then displays again showing that the task in in- progress. I then use javascript's XMLHttpRequest to get status information periodically and update a section of the HTML on the page to show the user the elapsed time, what it's doing, status and stuff like that.

The javascript code checks the status of the task until it completes. When the status is complete I submit the form on the page to cause it to redisplay. However, when I do that I get this error:


You backtracked too far. The application backtracking limit of 30 has been exceeded.


Any ideas how to avoid this error?

The direct action that generates the page with the status information that is sent to the browser is as follows:

    public WOActionResults checkStatusAction() {
        return pageWithName("TaskStatus");
    }

TaskStatus component simply returns the XML containing the status information for the running task.

The checkStatusAction is called by the javascript on the browser using XMLHttpRequest.

I read the WebObjects documentation on page caching but I still can't figure out how to avoid this error.

If anyone has any ideas please shoot me an email.

Thanks,
Ricardo Parada

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40framedphotographics.com


This email sent to email@hidden

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40foraker.com


This email sent to email@hidden

_______________________________________________ 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
  • Prev by Date: Re: Request for feedback on proposed project
  • Next by Date: WOResourceManager and localization issue
  • Previous by thread: Switching to document style...
  • Next by thread: WOResourceManager and localization issue
  • Index(es):
    • Date
    • Thread