[ https://issues.apache.org/jira/browse/WICKET-4881?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13688030#comment-13688030 ]
Tobias Haupt edited comment on WICKET-4881 at 6/19/13 2:22 PM: --------------------------------------------------------------- I still have heavy performance problems with the deep recursion / deep stack problem. In my case I append javascript that does a lot of jquery stuff so that it builds a big stack itself. I get the too much recursion message in firefox pretty soon or the page freezes. I understand that recursion is necessary through the notify call if the execution of the next step needs to be deferred until something long running (like downloading scripts etc.) has happened. Most of the calls of notify do not need a deferred execution so I introduced a second callback: notifyContinue that will be called whenever it is possible to avoid recursion. Please see the attached patch and verify if everything is correctly adapted. In my case it avoids the Exception and speeds up the evaluation a lot. was (Author: tobiashaupt): I still have heavy performance problems with the deep recursion / deep stack problem. In my case I append javascript that does a lot of jquery stuff so that it builds a big stack itself. I get the too much recursion message in firefox pretty soon or the page freezes. I understand that recursion is necessary through the notify call if the execution of the next step needs to be deferred until something long running (like downloading scripts etc.) has happened. Most of the calls of notify do not need a deferred execution so I introduced a second callback: notifyContinue that will be called whenever it is possible to avoid recursion. Please see the attached patch and verify if everything is correctly adapted. In my case id avoids the Exception and speeds up the evaluation a lot. > IE 8 : error when handling Wicket Ajax Response > ----------------------------------------------- > > Key: WICKET-4881 > URL: https://issues.apache.org/jira/browse/WICKET-4881 > Project: Wicket > Issue Type: Bug > Components: wicket > Affects Versions: 6.2.0, 6.3.0 > Environment: Internet Explorer 8, Windows 7 64 bits > Reporter: Frédéric Donckels > Assignee: Martin Grigorov > Fix For: 6.4.0 > > Attachments: WICKET-4881-avoid-recursion.patch, WICKET-4881.patch, > wicket_bug_report.7z, wicket_bug_report.zip > > > I have a problem with Wicket 6.2.0/6.3.0 and IE (this works perfectly with > Chrome or Firefox). I have a list of items, with Ajax links in the list. The > response to the Ajax link modifies a panel from the page, and redraws the > list (its container). > IE does at least some of the changes correctly, but outputs an error, and it > seems that subsequent Ajax request fail: > (... some UI code ...) > (... Jquery and Wicket ajax references ...) > <script type="text/javascript" id="wicket-ajax-base-url"> > /*<![CDATA[*/ > Wicket.Ajax.baseUrl="other/bictables/list"; > /*]^]^>*/ > </script> > </head>]]></header-contribution><evaluate><![CDATA[Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-interaction-view-toolbar-AMEND","e":"click","c":"AMENDea"});]]></evaluate><evaluate><![CDATA[Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-interaction-view-toolbar-RETURN","e":"click","c":"RETURNec"});]]></evaluate><evaluate><![CDATA[Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-entities-entitiesList-bictables-0-actions-view","e":"click","c":"viewf2"});]]></evaluate><evaluate><![CDATA[Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-entities-entitiesList-bictables-0-actions-edit","e":"click","c":"editf3"});]]></evaluate><evaluate><![CDATA[Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-entities-entitiesList-bictables-0-reorder-down","e":"click","c":"downf4"});]]></evaluate><evaluate><![CDATA[Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-entities-entitiesList-bictables-1-actions-view","e":"click","c":"viewf5"});]]></evaluate><evaluate><![CDATA[Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-entities-entitiesList-bictables-1-actions-edit","e":"click","c":"editf6"});]]></evaluate><evaluate><![CDATA[Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-entities-entitiesList-bictables-1-reorder-up","e":"click","c":"upf7"});]]></evaluate><evaluate><![CDATA[Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-entities-entitiesList-bictables-1-reorder-down","e":"click","c":"downf8"});]]></evaluate><evaluate><![CDATA[Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-entities-entitiesList-bictables-2-actions-view","e":"click","c":"viewf9"});]]></evaluate><evaluate><![CDATA[Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-entities-entitiesList-bictables-2-actions-edit","e":"click","c":"editfa"});]]> > (... lots of similar code from the table ...) > <evaluate><![CDATA[Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-entities-entitiesList-bictables-17-actions-edit","e":"click","c":"edit136"});]]></evaluate><evaluate><![CDATA[Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-entities-entitiesList-bictables-17-reorder-up","e":"click","c":"up137"});]]></evaluate></ajax-response> > INFO: returned focused element: > http://localhost:8080/payments/app/other/bictables/list?3# > INFO: returned focused element: null > ERROR: Wicket.Ajax.Call.processEvaluation: Exception evaluating javascript: > [object Error], text: > Wicket.Ajax.ajax({"u":"./list?3-1.IBehaviorListener.0-entities-entitiesList-bictables-7-actions-view","e":"click","c":"view10d"}); > ERROR: FunctionsExecuter.processNext: [object Error] > ERROR: Wicket.Ajax.Call.processEvaluation: Exception evaluating > javascript: [object Error], text: > Wicket.Ajax.ajax({"u":"./list?2-4.IBehaviorListener.0-entities-entitiesList-bictables-7-actions- > view","e":"click","c":"view2cb"}); > ERROR: FunctionsExecuter.processNext: [object Error] > all subsequent Ajax requests lead to : > INFO: Channel '0' is busy - scheduling the callback to be executed when the > previous request finish > Is this a bug in Wicket, in IE? Any way to circumvent it if it's in IE? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira