Hi there, Firstly, I apologise if this is hidden somewhere in the documentation, but I assure you I''ve read through it all and couldn''t see anything relating to this. I am new to prototype, and am slowing getting to grips with it (and JS in general). Today I had a user report to me that they are seeing the results of the OnLoading event handler *after* the OnComplete. By this, what I mean is that I simply have a textarea field on a page, of which the contents are pulled using a prototype GET request. They see "Loading..." as I have specified from the OnLoading handler. They then see the relevant text in the textarea, and then it seems to somehow go back to OnLoading extremely quickly, all in a flash. Either that, or for some reason OnLoading is kicking in *after* OnComplete has finished. I have only managed to reproduce this once, and now I can''t :/ Is there any particular order in which you are meant to specify OnEvent handlers? Should OnComplete come BEFORE OnLoading? Anyone have any ideas what the problem may be? Thanks in advance, Rich. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
It is in the documentation [1], and has been brought up on this list recently [2]. Search the archives [3]. "Depending on how your browser implements XMLHttpRequest, one or more callbacks may never be invoked. In particular, onLoaded and onInteractive are not a 100% safe bet so far. However, the global onCreate, onUninitialized and the two final steps are very much guaranteed." The short version: it depends on your browser. Perhaps those who manage the docs should style the paragraph to provide a stronger visual warning. 1. http://prototypejs.org/api/ajax/request 2. http://groups.google.com/group/rubyonrails-spinoffs/browse_frm/ thread/3a57ad6d644a28fe/c7bf329b539d8edf? lnk=gst&q=onloading&rnum=3&hl=en#c7bf329b539d8edf 3. http://groups.google.com/group/rubyonrails-spinoffs/search? hl=en&group=rubyonrails-spinoffs&q=onloading&qt_g=Search+this+group TAG On Jun 4, 2007, at 2:27 PM, Rich wrote:> > Hi there, > > Firstly, I apologise if this is hidden somewhere in the documentation, > but I assure you I''ve read through it all and couldn''t see anything > relating to this. I am new to prototype, and am slowing getting to > grips with it (and JS in general). > > Today I had a user report to me that they are seeing the results of > the OnLoading event handler *after* the OnComplete. > > By this, what I mean is that I simply have a textarea field on a page, > of which the contents are pulled using a prototype GET request. They > see "Loading..." as I have specified from the OnLoading handler. They > then see the relevant text in the textarea, and then it seems to > somehow go back to OnLoading extremely quickly, all in a flash. > Either that, or for some reason OnLoading is kicking in *after* > OnComplete has finished. > > I have only managed to reproduce this once, and now I can''t :/ > > Is there any particular order in which you are meant to specify > OnEvent handlers? Should OnComplete come BEFORE OnLoading? Anyone > have any ideas what the problem may be? > > Thanks in advance, > Rich. > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
Hi Tom,
Thanks for your response. I did see this responder stuff in the
documentation, but didn''t realise it was the workaround per se, so
thanks for the heads up.
I''ve been trying to get them to work for the last hour or so and
I''m
running into a perhaps obvious problem.
I need the responder to be local to a request, and not global. I
thought I could get around this by registering the responder,
initialising the Ajax.Request, and then unregistering the responder -
in that order. This seems to be half working, but... perhaps I''m
unclear just exactly what "onComplete" is.
Here is my code:
Responder:
var ajaxResponder = new Ajax.Responders.register({
onCreate: alert(''Created''),
onComplete: alert(''Completed'')});
Request:
new Ajax.Request(''ajax/pagecontent.php'', {
method: ''get'',
parameters: {pageid: id, time: Math.random()}
});
Unregister responder:
Ajax.Responders.unregister(ajaxResponder);
Now, at the top of pagecontent I have a PHP sleep() statement which
should halt the page for 5 seconds. By doing this, I am hoping that I
see an alert box that says "Created" and then another alert box
followed 5 seconds later with "Completed". Instead I am seeing
immediate consecutive alert boxes.
As this is the case, I assume that onComplete only referes to the
actual AJAX request completing, and not the return of data? If so, is
there a way I can actually have it alert once fully complete and data
has been returned?
Cheers,
Rich.
On Jun 4, 9:38 pm, Tom Gregory <t...-PGZyUNKar/Q@public.gmane.org>
wrote:> It is in the documentation [1], and has been brought up on this list
> recently [2]. Search the archives [3].
>
> "Depending on how your browser implements XMLHttpRequest, one or more
> callbacks may never be invoked. In particular, onLoaded and
> onInteractive are not a 100% safe bet so far. However, the global
> onCreate, onUninitialized and the two final steps are very much
> guaranteed."
>
> The short version: it depends on your browser.
>
> Perhaps those who manage the docs should style the paragraph to
> provide a stronger visual warning.
>
> 1.http://prototypejs.org/api/ajax/request
> 2.http://groups.google.com/group/rubyonrails-spinoffs/browse_frm/
> thread/3a57ad6d644a28fe/c7bf329b539d8edf?
> lnk=gst&q=onloading&rnum=3&hl=en#c7bf329b539d8edf
> 3.http://groups.google.com/group/rubyonrails-spinoffs/search?
>
hl=en&group=rubyonrails-spinoffs&q=onloading&qt_g=Search+this+group
>
> TAG
>
> On Jun 4, 2007, at 2:27 PM, Rich wrote:
>
>
>
>
>
>
>
> > Hi there,
>
> > Firstly, I apologise if this is hidden somewhere in the documentation,
> > but I assure you I''ve read through it all and
couldn''t see anything
> > relating to this. I am new to prototype, and am slowing getting to
> > grips with it (and JS in general).
>
> > Today I had a user report to me that they are seeing the results of
> > the OnLoading event handler *after* the OnComplete.
>
> > By this, what I mean is that I simply have a textarea field on a page,
> > of which the contents are pulled using a prototype GET request. They
> > see "Loading..." as I have specified from the OnLoading
handler. They
> > then see the relevant text in the textarea, and then it seems to
> > somehow go back to OnLoading extremely quickly, all in a flash.
> > Either that, or for some reason OnLoading is kicking in *after*
> > OnComplete has finished.
>
> > I have only managed to reproduce this once, and now I can''t
:/
>
> > Is there any particular order in which you are meant to specify
> > OnEvent handlers? Should OnComplete come BEFORE OnLoading? Anyone
> > have any ideas what the problem may be?
>
> > Thanks in advance,
> > Rich.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Spinoffs" group.
To post to this group, send email to
rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---
Maybe I''m missing something obvious... but if the timing of onCreate is sufficient, why not just execute the specific code immediately before creating the new request? i.e. doSomethingImportant(); new Ajax.Request(...); TAG On Jun 4, 2007, at 4:32 PM, Rich wrote:> > Hi Tom, > > Thanks for your response. I did see this responder stuff in the > documentation, but didn''t realise it was the workaround per se, so > thanks for the heads up. > > I''ve been trying to get them to work for the last hour or so and I''m > running into a perhaps obvious problem. > > I need the responder to be local to a request, and not global. I > thought I could get around this by registering the responder, > initialising the Ajax.Request, and then unregistering the responder - > in that order. This seems to be half working, but... perhaps I''m > unclear just exactly what "onComplete" is. > > Here is my code: > > Responder: > > var ajaxResponder = new Ajax.Responders.register({ > onCreate: alert(''Created''), > onComplete: alert(''Completed'')}); > > Request: > > new Ajax.Request(''ajax/pagecontent.php'', { > method: ''get'', > parameters: {pageid: id, time: Math.random()} > }); > > Unregister responder: > Ajax.Responders.unregister(ajaxResponder); > > > Now, at the top of pagecontent I have a PHP sleep() statement which > should halt the page for 5 seconds. By doing this, I am hoping that I > see an alert box that says "Created" and then another alert box > followed 5 seconds later with "Completed". Instead I am seeing > immediate consecutive alert boxes. > > As this is the case, I assume that onComplete only referes to the > actual AJAX request completing, and not the return of data? If so, is > there a way I can actually have it alert once fully complete and data > has been returned? > > Cheers, > Rich. > > > > > > > > On Jun 4, 9:38 pm, Tom Gregory <t...-PGZyUNKar/Q@public.gmane.org> wrote: >> It is in the documentation [1], and has been brought up on this list >> recently [2]. Search the archives [3]. >> >> "Depending on how your browser implements XMLHttpRequest, one or more >> callbacks may never be invoked. In particular, onLoaded and >> onInteractive are not a 100% safe bet so far. However, the global >> onCreate, onUninitialized and the two final steps are very much >> guaranteed." >> >> The short version: it depends on your browser. >> >> Perhaps those who manage the docs should style the paragraph to >> provide a stronger visual warning. >> >> 1.http://prototypejs.org/api/ajax/request >> 2.http://groups.google.com/group/rubyonrails-spinoffs/browse_frm/ >> thread/3a57ad6d644a28fe/c7bf329b539d8edf? >> lnk=gst&q=onloading&rnum=3&hl=en#c7bf329b539d8edf >> 3.http://groups.google.com/group/rubyonrails-spinoffs/search? >> hl=en&group=rubyonrails-spinoffs&q=onloading&qt_g=Search+this+group >> >> TAG >> >> On Jun 4, 2007, at 2:27 PM, Rich wrote: >> >> >> >> >> >> >> >>> Hi there, >> >>> Firstly, I apologise if this is hidden somewhere in the >>> documentation, >>> but I assure you I''ve read through it all and couldn''t see anything >>> relating to this. I am new to prototype, and am slowing getting to >>> grips with it (and JS in general). >> >>> Today I had a user report to me that they are seeing the results of >>> the OnLoading event handler *after* the OnComplete. >> >>> By this, what I mean is that I simply have a textarea field on a >>> page, >>> of which the contents are pulled using a prototype GET request. >>> They >>> see "Loading..." as I have specified from the OnLoading handler. >>> They >>> then see the relevant text in the textarea, and then it seems to >>> somehow go back to OnLoading extremely quickly, all in a flash. >>> Either that, or for some reason OnLoading is kicking in *after* >>> OnComplete has finished. >> >>> I have only managed to reproduce this once, and now I can''t :/ >> >>> Is there any particular order in which you are meant to specify >>> OnEvent handlers? Should OnComplete come BEFORE OnLoading? >>> Anyone >>> have any ideas what the problem may be? >> >>> Thanks in advance, >>> Rich. > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
Hi Tom, Basically I need the process to go like this... OnCreate -> Text area is updated with "Loading...." text to illustrate that the request is in process. OnComplete -> (I assume that OnComplete means the request has completed, and I have responseText), therefore I then update "Loading..." to the actual response text. Perhaps my logic is flawed and I''m not approaching this in the correct or appropriate way. If that''s the case, then I appreciate any advice. This WAS all working fine, but as mentioned previously, for some reason people were receiving the completed responseText and it was then being replaced with "Loading....". Cheers, Rich. On Jun 4, 11:39 pm, Tom Gregory <t...-PGZyUNKar/Q@public.gmane.org> wrote:> Maybe I''m missing something obvious... but if the timing of onCreate > is sufficient, why not just execute the specific code immediately > before creating the new request? > > i.e. > > doSomethingImportant(); > new Ajax.Request(...); > > TAG > > On Jun 4, 2007, at 4:32 PM, Rich wrote: > > > > > Hi Tom, > > > Thanks for your response. I did see this responder stuff in the > > documentation, but didn''t realise it was the workaround per se, so > > thanks for the heads up. > > > I''ve been trying to get them to work for the last hour or so and I''m > > running into a perhaps obvious problem. > > > I need the responder to be local to a request, and not global. I > > thought I could get around this by registering the responder, > > initialising the Ajax.Request, and then unregistering the responder - > > in that order. This seems to be half working, but... perhaps I''m > > unclear just exactly what "onComplete" is. > > > Here is my code: > > > Responder: > > > var ajaxResponder = new Ajax.Responders.register({ > > onCreate: alert(''Created''), > > onComplete: alert(''Completed'')}); > > > Request: > > > new Ajax.Request(''ajax/pagecontent.php'', { > > method: ''get'', > > parameters: {pageid: id, time: Math.random()} > > }); > > > Unregister responder: > > Ajax.Responders.unregister(ajaxResponder); > > > Now, at the top of pagecontent I have a PHP sleep() statement which > > should halt the page for 5 seconds. By doing this, I am hoping that I > > see an alert box that says "Created" and then another alert box > > followed 5 seconds later with "Completed". Instead I am seeing > > immediate consecutive alert boxes. > > > As this is the case, I assume that onComplete only referes to the > > actual AJAX request completing, and not the return of data? If so, is > > there a way I can actually have it alert once fully complete and data > > has been returned? > > > Cheers, > > Rich. > > > On Jun 4, 9:38 pm, Tom Gregory <t...-PGZyUNKar/Q@public.gmane.org> wrote: > >> It is in the documentation [1], and has been brought up on this list > >> recently [2]. Search the archives [3]. > > >> "Depending on how your browser implements XMLHttpRequest, one or more > >> callbacks may never be invoked. In particular, onLoaded and > >> onInteractive are not a 100% safe bet so far. However, the global > >> onCreate, onUninitialized and the two final steps are very much > >> guaranteed." > > >> The short version: it depends on your browser. > > >> Perhaps those who manage the docs should style the paragraph to > >> provide a stronger visual warning. > > >> 1.http://prototypejs.org/api/ajax/request > >> 2.http://groups.google.com/group/rubyonrails-spinoffs/browse_frm/ > >> thread/3a57ad6d644a28fe/c7bf329b539d8edf? > >> lnk=gst&q=onloading&rnum=3&hl=en#c7bf329b539d8edf > >> 3.http://groups.google.com/group/rubyonrails-spinoffs/search? > >> hl=en&group=rubyonrails-spinoffs&q=onloading&qt_g=Search+this+group > > >> TAG > > >> On Jun 4, 2007, at 2:27 PM, Rich wrote: > > >>> Hi there, > > >>> Firstly, I apologise if this is hidden somewhere in the > >>> documentation, > >>> but I assure you I''ve read through it all and couldn''t see anything > >>> relating to this. I am new to prototype, and am slowing getting to > >>> grips with it (and JS in general). > > >>> Today I had a user report to me that they are seeing the results of > >>> the OnLoading event handler *after* the OnComplete. > > >>> By this, what I mean is that I simply have a textarea field on a > >>> page, > >>> of which the contents are pulled using a prototype GET request. > >>> They > >>> see "Loading..." as I have specified from the OnLoading handler. > >>> They > >>> then see the relevant text in the textarea, and then it seems to > >>> somehow go back to OnLoading extremely quickly, all in a flash. > >>> Either that, or for some reason OnLoading is kicking in *after* > >>> OnComplete has finished. > > >>> I have only managed to reproduce this once, and now I can''t :/ > > >>> Is there any particular order in which you are meant to specify > >>> OnEvent handlers? Should OnComplete come BEFORE OnLoading? > >>> Anyone > >>> have any ideas what the problem may be? > > >>> Thanks in advance, > >>> Rich.--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
If you want to do things "only when data comes back (ie,
"OnSuccess"), you
probably want to use the "OnSuccess" callback.
http://www.prototypejs.org/api/ajax/request
Following your logic:
OnCreate -> Text area is updated with "Loading...." text to
illustrate
that the request is in process.
-Just do this before you create your AJAX request, like Tom said
OnComplete -> (I assume that OnComplete means the request has
completed, and I have responseText), therefore I then update
"Loading..." to the actual response text.
-use onSuccess to update Loading...to the response text, and onFailure
and onException to catch any exceptions.
For details on what callbacks you can set up, check here:
http://www.prototypejs.org/api/ajax/options
-Jerod
On 6/4/07, Rich <rflack-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:>
>
> Hi Tom,
>
> Basically I need the process to go like this...
>
> OnCreate -> Text area is updated with "Loading...." text to
illustrate
> that the request is in process.
> OnComplete -> (I assume that OnComplete means the request has
> completed, and I have responseText), therefore I then update
> "Loading..." to the actual response text.
>
> Perhaps my logic is flawed and I''m not approaching this in the
correct
> or appropriate way. If that''s the case, then I appreciate any
advice.
>
> This WAS all working fine, but as mentioned previously, for some
> reason people were receiving the completed responseText and it was
> then being replaced with "Loading....".
>
> Cheers,
> Rich.
>
> On Jun 4, 11:39 pm, Tom Gregory <t...-PGZyUNKar/Q@public.gmane.org>
wrote:
> > Maybe I''m missing something obvious... but if the timing of
onCreate
> > is sufficient, why not just execute the specific code immediately
> > before creating the new request?
> >
> > i.e.
> >
> > doSomethingImportant();
> > new Ajax.Request(...);
> >
> > TAG
> >
> > On Jun 4, 2007, at 4:32 PM, Rich wrote:
> >
> >
> >
> > > Hi Tom,
> >
> > > Thanks for your response. I did see this responder stuff in the
> > > documentation, but didn''t realise it was the workaround
per se, so
> > > thanks for the heads up.
> >
> > > I''ve been trying to get them to work for the last hour
or so and I''m
> > > running into a perhaps obvious problem.
> >
> > > I need the responder to be local to a request, and not global. I
> > > thought I could get around this by registering the responder,
> > > initialising the Ajax.Request, and then unregistering the
responder -
> > > in that order. This seems to be half working, but... perhaps
I''m
> > > unclear just exactly what "onComplete" is.
> >
> > > Here is my code:
> >
> > > Responder:
> >
> > > var ajaxResponder = new Ajax.Responders.register({
> > > onCreate: alert(''Created''),
> > > onComplete: alert(''Completed'')});
> >
> > > Request:
> >
> > > new
Ajax.Request(''ajax/pagecontent.php'', {
> > > method: ''get'',
> > > parameters: {pageid: id, time: Math.random()}
> > > });
> >
> > > Unregister responder:
> > > Ajax.Responders.unregister(ajaxResponder);
> >
> > > Now, at the top of pagecontent I have a PHP sleep() statement
which
> > > should halt the page for 5 seconds. By doing this, I am hoping
that I
> > > see an alert box that says "Created" and then another
alert box
> > > followed 5 seconds later with "Completed". Instead I
am seeing
> > > immediate consecutive alert boxes.
> >
> > > As this is the case, I assume that onComplete only referes to the
> > > actual AJAX request completing, and not the return of data? If
so, is
> > > there a way I can actually have it alert once fully complete and
data
> > > has been returned?
> >
> > > Cheers,
> > > Rich.
> >
> > > On Jun 4, 9:38 pm, Tom Gregory
<t...-PGZyUNKar/Q@public.gmane.org> wrote:
> > >> It is in the documentation [1], and has been brought up on
this list
> > >> recently [2]. Search the archives [3].
> >
> > >> "Depending on how your browser implements
XMLHttpRequest, one or more
> > >> callbacks may never be invoked. In particular, onLoaded and
> > >> onInteractive are not a 100% safe bet so far. However, the
global
> > >> onCreate, onUninitialized and the two final steps are very
much
> > >> guaranteed."
> >
> > >> The short version: it depends on your browser.
> >
> > >> Perhaps those who manage the docs should style the paragraph
to
> > >> provide a stronger visual warning.
> >
> > >> 1.http://prototypejs.org/api/ajax/request
> > >>
2.http://groups.google.com/group/rubyonrails-spinoffs/browse_frm/
> > >> thread/3a57ad6d644a28fe/c7bf329b539d8edf?
> > >> lnk=gst&q=onloading&rnum=3&hl=en#c7bf329b539d8edf
> > >> 3.http://groups.google.com/group/rubyonrails-spinoffs/search?
> > >>
hl=en&group=rubyonrails-spinoffs&q=onloading&qt_g=Search+this+group
> >
> > >> TAG
> >
> > >> On Jun 4, 2007, at 2:27 PM, Rich wrote:
> >
> > >>> Hi there,
> >
> > >>> Firstly, I apologise if this is hidden somewhere in the
> > >>> documentation,
> > >>> but I assure you I''ve read through it all and
couldn''t see anything
> > >>> relating to this. I am new to prototype, and am slowing
getting to
> > >>> grips with it (and JS in general).
> >
> > >>> Today I had a user report to me that they are seeing the
results of
> > >>> the OnLoading event handler *after* the OnComplete.
> >
> > >>> By this, what I mean is that I simply have a textarea
field on a
> > >>> page,
> > >>> of which the contents are pulled using a prototype GET
request.
> > >>> They
> > >>> see "Loading..." as I have specified from the
OnLoading handler.
> > >>> They
> > >>> then see the relevant text in the textarea, and then it
seems to
> > >>> somehow go back to OnLoading extremely quickly, all in a
flash.
> > >>> Either that, or for some reason OnLoading is kicking in
*after*
> > >>> OnComplete has finished.
> >
> > >>> I have only managed to reproduce this once, and now I
can''t :/
> >
> > >>> Is there any particular order in which you are meant to
specify
> > >>> OnEvent handlers? Should OnComplete come BEFORE
OnLoading?
> > >>> Anyone
> > >>> have any ideas what the problem may be?
> >
> > >>> Thanks in advance,
> > >>> Rich.
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Spinoffs" group.
To post to this group, send email to
rubyonrails-spinoffs-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-spinoffs-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---