Hi, On Wed, Feb 13, 2013 at 8:38 AM, Ernesto Reinaldo Barreiro < reier...@gmail.com> wrote:
> Hi, > > We are having problems on Wicket 1.4.x with and "AJAX function" > processEvaluation... and I see the code is practically the same at 6.x. So, > let's bring the subject to the list... > > Our problem is that after evaluating some expressions with errors, screen > "freezes" because post-call handlers are not called. Problem seems to be > related to the code. > > // test if the javascript is in form of > identifier|code > // if it is, we allow for letting the javascript decide when the rest of > processing will continue > // by invoking identifier(); > var res = text.match(new > RegExp("^([a-z|A-Z_][a-z|A-Z|0-9_]*)\\|((.|\\n)*)$")); > > if (res !== null) { > var f = jQuery.noop; > text = "f = function(" + res[1] + ") {" + res[2] + "};"; > > try { > // do the evaluation > eval(text); > f(notify); > } catch (exception) { > Wicket.Log.error("Wicket.Ajax.Call.processEvaluation: Exception evaluating > javascript: " + exception + ", text: " + text); > } > > } > > > Questions: > > 1- Shouldn't > > text = "f = function(" + res[1] + ") {" + res[2] + "};"; > > be > > text = "f = function(" + res[1] + ") {" + res[2] + ";" + res[1]+"();" > +"};"; > > so that f(notify) ==> notify() gets called? > Ok. This part is clearly correct according to // test if the javascript is in form of identifier|code // if it is, we allow for letting the javascript decide when the rest of processing will continue // by invoking identifier(); var res = text.match(new RegExp("^([a-z|A-Z_][a-z|A-Z|0-9_]*)\\|((.|\\n)*)$")); So, forget my question. > > 2- In case of error. Shouldn't it be > > try { > // do the evaluation > eval(text); > f(notify); > } catch (exception) { > Wicket.Log.error("Wicket.Ajax.Call.processEvaluation: Exception > evaluating javascript: " + exception + ", text: " + text); > notify(); > } > This I think is an error... as if eval fails... processing should continue. Shall I create an issue for this? > > So that next steps in processing get called. The above solves or freezing > problem in case of error but... I'm still not sure about 1) above. > > Can someone shed some light on the above? > > Thanks in advance! > > -- > Regards - Ernesto Reinaldo Barreiro > Antilia Soft > http://antiliasoft.com/ <http://antiliasoft.com/antilia> > -- Regards - Ernesto Reinaldo Barreiro Antilia Soft http://antiliasoft.com/ <http://antiliasoft.com/antilia>