I get an hint that we are 'compaesani' :-P

Anyhow.. thank you very much,I'm studying that link you gave me,
meanwhile, in my particular case setting to "syncronous" has indeed
resolved my issue.

Thank you very much for you toughtfull response


A presto

David(e)

On Jan 23, 2:08 pm, "T.J. Crowder" <t...@crowdersoftware.com> wrote:
> Ciao David,
>
> By default, Ajax requests are asynchronous, and so they get *started*
> when you do "new Ajax.Requst" but then they run for a while and
> complete later; meanwhile, your code that started the request
> continues.  So what your anonymous function above returns will be
> whatever value risultato has when the function starts, since the
> request hasn't completed yet.  Later, at a time you cannot predict,
> the value of risultato will be updated by the callbacks you've
> registered.
>
> You _can_ make requests synchronous if you like (set the asynchronous
> parameter to false), but that will lock up the UI of the browser for
> the entire time the request is taking pace -- which from what you've
> said about availability.php non sembra una buona idea.
>
> This might be 
> useful:http://proto-scripty.wikidot.com/prototype:how-to-bulletproof-ajax-re...
> It's an example of an Ajax request that starts the process of
> retriving a record from the server, and then displays that record (or,
> of course, an error) on callback.
>
> Basically, when working with lots of asynchronous stuff like this, you
> end up modifying your logic so you don't make a function call and
> expect an answer back, but instead you make a function call and expect
> to handle the result in callbacks.
>
> HTH,
> --
> T.J. Crowder
> tj / crowder software / com
> Independent Software Engineer, consulting services available
>
> On Jan 23, 12:38 pm, "david.0pl...@gmail.com" <david.0pl...@gmail.com>
> wrote:
>
> > First of all I'm David, from Italy.
> > I recently started looking into your fabolous prototype thanks to this
> > script:http://tetlaw.id.au/view/javascript/really-easy-field-validation
>
> > After some playing around I decided to add another validation check.
> > Without going into the details of the other script (which is not
> > relevent) I would like to ask you how can I return a variable AFTER an
> > Ajax request has finished.
>
> > This is the code:
>
> > function(v) {
> >                 new Ajax.Request('availability.php',
> >                 {method: 'get', parameters: {validate: v},
> >                 onSuccess: function( transport ) {
> >                      if( transport.responseText.match(/true/)) {
> >                         risultato = false;
> >                         }
> >                 else {
> >                 risultato = true;
> >                 }
> >                 }
> >                 });
> >                 return risultato;
> >                 }
>
> > The problem is that availability takes a long time to process the
> > response (1sec) and while he process the thing risultato has the value
> > of the last query.
>
> > For example: first time we have risultato = true;
> > so it returns: true
> > The second time I invoke the function i still have risultato = true
> > from before. Now the ajx request returns risultato = false BUT while
> > it goes the functions returns true.
>
> > How can I avoid this?
>
> > Thank you very much
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to