feel free to add an rfe into our jira for the extra param.

-igor


On 5/4/07, James Renfro <[EMAIL PROTECTED]> wrote:

Good point. What I'm planning on is to inject my own ResourceReference
version with the async set to false, but only for the one page where I
need it to be synchronous. Since I'm overriding
onRenderHeadInitContribution, I can just choose not to call super and
the default .js files won't get included. But it would be much cleaner
to be able to just set it programmatically, so I'd be very happy to see
that parameter get worked into a future release.

Unfortunately, the spec I'm trying to implement (SCORM) requires that I
expose a bunch of javascript methods with synchronous behavior,
otherwise I would definite go the success handler route in this case.

Thanks very much,
James.


Igor Vaynberg wrote:
> if you change wicket-ajax.js in the way you showed below then all ajax
> requests will become synchronous. while you wont break anything
> foundamental you will make parallel ajax requests impossible. not a
> good thing imho. i guess we need to add a parameter so that you can
> set the request to synchronous just for that one call.
>
> or do what i suggested and add a success handler that will execute the
> rest of the function.
>
> -igor
>
>
> On 5/4/07, *James Renfro* < [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
>
>     So although clearly AJAX is supposed to be mostly asynchronous. it
>     looks
>     like the underlying XMLHttpRequest object _can_ be synchronous.
>
>     If I modify wicket-ajax.js and set 'Wicket.Ajax.Request.async' to
>     *false* -- suddenly my code works... i.e. I can code an
>     AjaxFormSubmitBehavor.onSubmit so it takes a value from one
>     FormComponent (the argument to the function), modifies it (in this
>     case
>     toUppercase), and sends it back to another FormComponent, whose node
I
>     can grab from the DOM tree and return inside my function.
>
>     So I guess my question is -- am I going to break something
fundamental
>     by doing this? It seem to work fine in my test case.
>
>     <Javascript_function>
>
>     <script type="text/javascript"
>     id="onTestMethod1"><!--/*--><![CDATA[/*><!--*/
>     TestMethod1 = function () {
>     var wcall=wicketSubmitFormById('form',
>
'/portal/tool/52480496-d4f6-4278-0002-e65fdefcc0ef/?wicket:interface=wicket-247:0:form:-1:IUnversionedBehaviorListener&wicket:behaviorId=0&wicket:ignoreIfNotActive=true',
>     null, function() { }, function() { });
>     return document.getElementById('form_result').value;;};
>     /*-->]]>*/</script>
>
>     </Javascript_function>
>
>     <AjaxFormSubmitBehavior.onSubmit>
>                 @Override
>                 protected void onSubmit(AjaxRequestTarget target) {
>                     FormComponent c =
(FormComponent)form.get("argument");
>                     String testValue = (String)c.getConvertedInput();
>
>                     FormComponent r = (FormComponent)form.get("result");
>                     bean.setResult(testValue.toUpperCase());
>                     target.addComponent(r);
>                 }
>     </AjaxFormSubmitBehavior.onSubmit>
>
>     <wicket-ajax.js>
>     Wicket.Ajax.Request.prototype = {
>         initialize: function(url, loadedCallback, parseResponse,
>     randomURL,
>     failureHandler, channel) {
>             this.url = url;
>             this.loadedCallback = loadedCallback;
>             this.parseResponse = parseResponse != null ? parseResponse
>     : true;
>             this.randomURL = randomURL != null ? randomURL : true;
>             this.failureHandler = failureHandler != null ?
>     failureHandler :
>     function() { };
>             this.async = *true;*
>             this.channel = channel;
>             this.suppressDone = false;
>             this.instance = Math.random();
>             this.debugContent = true;
>         },
>     </wicket-ajax.js>
>
>     Thanks,
>     James
>
>
>     Igor Vaynberg wrote:
>     > the short answer is: you cant do that. javascript is
>     asynchronous, so
>     > the request will start _and_ your function will continue running.
>     > usually what is done is that you create a request object, and then
>     > register success and failure handlers that are executed after the
>     > request is done.
>     >
>     > you can do that using iajaxcalldecorator, or what you
>     tried...calling
>     > ajaxtarget.appendjavascript() should work as well.
>     >
>     > if you show us some more code/try to describe your actual
>     usecase we
>     > can probably help you more, right now its all very abstract.
>     >
>     > -igor
>     >
>     >
>     > On 5/3/07, *James Renfro* <[EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>
>     > <mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>
wrote:
>     >
>     >     Hi,
>     >     I'd like to do something slightly unusual and wrap the
>     >     wicketSubmitFormById call in another javascript function --
I'm
>     >     able to
>     >     do this with no problem by overriding
>     >     AjaxFormSubmitBehavor.onRenderHeadInitContribution and calling
>     >     JavascriptUtils.writeJavascript on a wrapped getEventHandler.
I
>     >     can stop
>     >     the normal attribute for 'onclick' or whatever from appearing
>     >     inside the
>     >     component tag by overriding onComponentTag. And by using
>     text input
>     >     boxes, I can pass 'arguments' to my method on the server
>     inside using
>     >     FormComponent.getConvertedInput. So far so good.
>     >
>     >     The problem I have is that I'd like to actually 'return' a
>     value back
>     >     from the server in that Javascript function... so my
>     function ends up
>     >     looking just like a normal function call inside of my
>     Javascript and
>     >     returns the value that the server provides.
>     >
>     >     I can see inside of wicket-ajax.js that there are three
>     special tags:
>     >     "component", "evaluate" and "header-contribution", each with
>     their
>     >     appropriate purpose -- I tried messing around with
>     >     AjaxRequestTarget.prependJavascript so I could pass
>     something through
>     >     the 'evaluate' tag, but my javascript isn't sufficient to the
>     >     task. Then
>     >     I tried using AjaxRequestTarget.addComponent to modify another
>     >     TextField
>     >     and return the value through the DOM tree -- that works fine
>     >     except for
>     >     the fact that the order is wrong, so my method returns
>     _before_ the
>     >     component is updated.
>     >
>     >     Then I noticed this interesting
>     Wicket.Ajax.invokePostCallHandlers ()
>     >     call, which makes me wonder if there is already some nice
clean
>     >     mechanism in place for updating javascript variables thru
>     wicket's
>     >     java
>     >     code.
>     >
>     >     Apologies if this all makes no sense, but any advice or
>     suggestions
>     >     would be much appreciated. The basic requirement is just that
I
>     >     make a
>     >     call in Javascript and get data back from the server as a
>     'returned'
>     >     variable on the client.
>     >
>     >     Thanks,
>     >     James
>     >
>     >     --
>     >     James Renfro
>     >     Programmer
>     >     IET Mediaworks, UC Davis
>     >     [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>     <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>     >     W: 530-754-5097
>     >
>     >
>     >
>
-------------------------------------------------------------------------
>     >     This SF.net email is sponsored by DB2 Express
>     >     Download DB2 Express C - the FREE version of DB2 express and
>     take
>     >     control of your XML. No limits. Just data. Click to get it
now.
>     >     http://sourceforge.net/powerbar/db2/
>     >     _______________________________________________
>     >     Wicket-user mailing list
>     >     Wicket-user@lists.sourceforge.net
>     <mailto:Wicket-user@lists.sourceforge.net>
>     >     <mailto:Wicket-user@lists.sourceforge.net
>     <mailto:Wicket-user@lists.sourceforge.net>>
>     >     https://lists.sourceforge.net/lists/listinfo/wicket-user
>     <https://lists.sourceforge.net/lists/listinfo/wicket-user>
>     >
>     >
>     >
>
------------------------------------------------------------------------
>     >
>     >
>
-------------------------------------------------------------------------
>     > This SF.net email is sponsored by DB2 Express
>     > Download DB2 Express C - the FREE version of DB2 express and take
>     > control of your XML. No limits. Just data. Click to get it now.
>     > http://sourceforge.net/powerbar/db2/
>     <http://sourceforge.net/powerbar/db2/>
>     >
>
------------------------------------------------------------------------
>     >
>     > _______________________________________________
>     > Wicket-user mailing list
>     > Wicket-user@lists.sourceforge.net
>     <mailto:Wicket-user@lists.sourceforge.net>
>     > https://lists.sourceforge.net/lists/listinfo/wicket-user
>     >
>
>     --
>     James Renfro
>     Programmer
>     IET Mediaworks, UC Davis
>     [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>     W: 530-754-5097
>
>
>
-------------------------------------------------------------------------
>     This SF.net email is sponsored by DB2 Express
>     Download DB2 Express C - the FREE version of DB2 express and take
>     control of your XML. No limits. Just data. Click to get it now.
>     http://sourceforge.net/powerbar/db2/
>     <http://sourceforge.net/powerbar/db2/>
>     _______________________________________________
>     Wicket-user mailing list
>     Wicket-user@lists.sourceforge.net
>     <mailto:Wicket-user@lists.sourceforge.net>
>     https://lists.sourceforge.net/lists/listinfo/wicket-user
>
>
> ------------------------------------------------------------------------
>
>
-------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> ------------------------------------------------------------------------
>
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>

--
James Renfro
Programmer
IET Mediaworks, UC Davis
[EMAIL PROTECTED]
W: 530-754-5097


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to