i''m sending multiple ajax.request instances when i search for
something when the ''keypress'' event is fired; this is not a
problem
unless sometimes some ajax.request''s don''t came back in the
same order
that they was sended... in some cases earlier requests came back after
late requests and that can be anoying to the user... i was thinking in
atach to the request a timestamp and in the handler function wait for
the last timestamp in the last request and dismiss the others; i don''t
know if there exists a more elegant way to do this...i was thinking to
send the timestamp in the request and send it back from the server and
check it that way but i would like to do in the client side only...
example:
$(''textbox'').observe(''keypress'',
this.send_request.bind(this));
...
this.send_request = function() {
options.onComplete = this.ajax_handler; // Handler function for the
request...
var current_date = new Date();
timestamp = current_date.getTime();
options.timestamp=timestamp; // Timestamp in the Ajax options for
identify it in the handler...
this.expected_timestamp=timestamp;
this.ajax_object = new Ajax.Request(''sql.php'', options); //
Generate
Request...
}
this.ajax_handler = function(response) {
// Do anything i have to do here...
// There i need to know the timestamp asociated by the ajax object
that triggered this
// function in order to use it only if is the last request and dismiss
others
// ....
}
thanks in advance for the help... ( and excuse my poor english ...)
--~--~---------~--~----~------------~-------~--~----~
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 it doesn''t understands so well; the issue is access de ajax.request instance who fired the handler function, how this can be done?... On 21 nov, 20:37, Rodrigo Carvajal <rodrigo.carvaja...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> i''m sending multiple ajax.request instances when i search for > something when the ''keypress'' event is fired; this is not a problem > unless sometimes some ajax.request''s don''t came back in the same order > that they was sended... in some cases earlier requests came back after > late requests and that can be anoying to the user... i was thinking in > atach to the request a timestamp and in the handler function wait for > the last timestamp in the last request and dismiss the others; i don''t > know if there exists a more elegant way to do this...i was thinking to > send the timestamp in the request and send it back from the server and > check it that way but i would like to do in the client side only... > > example: > > $(''textbox'').observe(''keypress'', this.send_request.bind(this)); > > ... > > this.send_request = function() { > > options.onComplete = this.ajax_handler; // Handler function for the > request... > > var current_date = new Date(); > > timestamp = current_date.getTime(); > > options.timestamp=timestamp; // Timestamp in the Ajax options for > identify it in the handler... > this.expected_timestamp=timestamp; > > this.ajax_object = new Ajax.Request(''sql.php'', options); // Generate > Request... > > } > > this.ajax_handler = function(response) { > > // Do anything i have to do here... > // There i need to know the timestamp asociated by the ajax object > that triggered this > // function in order to use it only if is the last request and dismiss > others > // .... > > } > > thanks in advance for the help... ( and excuse my poor english ...)--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
I think I understand your request.
The AJAX call back (onSuccess, onComplete) also need to be bound to this.
BUT!!!!
Make sure you have the Ajax request as a property of this ...
Here is an edited example of a class which has a some methods to
process things after an onComplete and also used within the class
itself ...
var classs_Alerter = Class.create({
initialize : function() {
this.o_AJAX = new Ajax.PeriodicalUpdater(''dot'',
location.href, {
frequency : 30,
delay : 1,
// Note binding of "this" - this relates to main class, not
Ajax.PeriodicalUpdater
onException : (function(o_Transport, o_JSON) {
this.commonUpdate(this);
}).bind(this),
onFailure : (function(o_Transport, o_JSON) {
updateAjaxReport(o_Transport.statusText,
''MAction_Failure_TH'');
this.commonUpdate(this);
}).bind(this),
onSuccess : (function(o_Transport, o_JSON) {
if (!!o_JSON) {
$(''Jobs'').update(o_JSON.Jobs);
$(''Chase'').update(o_JSON.Chase);
if (''0 jobs'' != o_JSON.Jobs) {
this.Play1.bind(this).delay(1); }
if (''0 jobs'' != o_JSON.Chase) {
this.Play2.bind(this).delay(5); }
} else {
updateAjaxReport(''<span
class="MErrors_SPAN">There us a problem
with the server.<br />Please tell Richard.</span>'',
''MAction_Failure_TH'');
}
this.commonUpdate(this);
}).bind(this)
});
this.commonUpdate(this);
},
Play1 : function() {
soundManager.play(''mySound1'',''/global/tructyre.mp3'');
},
Play2 : function() {
soundManager.play(''mySound2'',''/global/etarequireschasing.mp3'');
},
commonUpdate : function(o_Alerter) {
o_Alerter.o_Date = new Date();
o_Alerter.o_NewDate = new Date(o_Alerter.o_Date.valueOf() + (1000 *
o_Alerter.o_AJAX.decay * o_Alerter.o_AJAX.frequency));
$(''Last'').update(o_Alerter.o_Date.toLocaleString ());
$(''Next'').update(o_Alerter.o_NewDate.toLocaleString ());
}
});
document.observe(''dom:loaded'', function(){o_Alterer = new
classs_Alerter();});
So, within the Ajax handlers you use this.o_AJAX to access the
PeriodicalUpdater object.
On 22/11/2007, Rodrigo Carvajal
<rodrigo.carvajal.j-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:>
> maybe it doesn''t understands so well; the issue is access de
> ajax.request instance who fired the handler function, how this can be
> done?...
>
> On 21 nov, 20:37, Rodrigo Carvajal
<rodrigo.carvaja...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> wrote:
> > i''m sending multiple ajax.request instances when i search for
> > something when the ''keypress'' event is fired; this
is not a problem
> > unless sometimes some ajax.request''s don''t came back
in the same order
> > that they was sended... in some cases earlier requests came back after
> > late requests and that can be anoying to the user... i was thinking in
> > atach to the request a timestamp and in the handler function wait for
> > the last timestamp in the last request and dismiss the others; i
don''t
> > know if there exists a more elegant way to do this...i was thinking to
> > send the timestamp in the request and send it back from the server and
> > check it that way but i would like to do in the client side only...
> >
> > example:
> >
> > $(''textbox'').observe(''keypress'',
this.send_request.bind(this));
> >
> > ...
> >
> > this.send_request = function() {
> >
> > options.onComplete = this.ajax_handler; // Handler function for the
> > request...
> >
> > var current_date = new Date();
> >
> > timestamp = current_date.getTime();
> >
> > options.timestamp=timestamp; // Timestamp in the Ajax options for
> > identify it in the handler...
> > this.expected_timestamp=timestamp;
> >
> > this.ajax_object = new Ajax.Request(''sql.php'',
options); // Generate
> > Request...
> >
> > }
> >
> > this.ajax_handler = function(response) {
> >
> > // Do anything i have to do here...
> > // There i need to know the timestamp asociated by the ajax object
> > that triggered this
> > // function in order to use it only if is the last request and dismiss
> > others
> > // ....
> >
> > }
> >
> > thanks in advance for the help... ( and excuse my poor english ...)
> >
>
--
-----
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
On 22/11/2007, Richard Quadling <rquadling-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:> I think I understand your request. > > The AJAX call back (onSuccess, onComplete) also need to be bound to this. > > BUT!!!! > > Make sure you have the Ajax request as a property of this ... > > Here is an edited example of a class which has a some methods to > process things after an onComplete and also used within the class > itself ... > > var classs_Alerter = Class.create({ > initialize : function() { > this.o_AJAX = new Ajax.PeriodicalUpdater(''dot'', location.href, { > frequency : 30, > delay : 1, > > // Note binding of "this" - this relates to main class, not > Ajax.PeriodicalUpdater > onException : (function(o_Transport, o_JSON) { > this.commonUpdate(this); > }).bind(this), > > onFailure : (function(o_Transport, o_JSON) { > updateAjaxReport(o_Transport.statusText, ''MAction_Failure_TH''); > this.commonUpdate(this); > }).bind(this), > > onSuccess : (function(o_Transport, o_JSON) { > if (!!o_JSON) { > $(''Jobs'').update(o_JSON.Jobs); > $(''Chase'').update(o_JSON.Chase); > > if (''0 jobs'' != o_JSON.Jobs) { this.Play1.bind(this).delay(1); } > if (''0 jobs'' != o_JSON.Chase) { this.Play2.bind(this).delay(5); } > } else { > updateAjaxReport(''<span class="MErrors_SPAN">There us a problem > with the server.<br />Please tell Richard.</span>'', > ''MAction_Failure_TH''); > } > > this.commonUpdate(this); > }).bind(this) > }); > > this.commonUpdate(this); > }, > > Play1 : function() { soundManager.play(''mySound1'',''/global/tructyre.mp3''); }, > Play2 : function() { > soundManager.play(''mySound2'',''/global/etarequireschasing.mp3''); }, > commonUpdate : function(o_Alerter) { > o_Alerter.o_Date = new Date(); > o_Alerter.o_NewDate = new Date(o_Alerter.o_Date.valueOf() + (1000 * > o_Alerter.o_AJAX.decay * o_Alerter.o_AJAX.frequency)); > $(''Last'').update(o_Alerter.o_Date.toLocaleString ()); > $(''Next'').update(o_Alerter.o_NewDate.toLocaleString ()); > } > }); > > document.observe(''dom:loaded'', function(){o_Alterer = new classs_Alerter();}); > > > > So, within the Ajax handlers you use this.o_AJAX to access the > PeriodicalUpdater object. > > On 22/11/2007, Rodrigo Carvajal <rodrigo.carvajal.j-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > maybe it doesn''t understands so well; the issue is access de > > ajax.request instance who fired the handler function, how this can be > > done?... > > > > On 21 nov, 20:37, Rodrigo Carvajal <rodrigo.carvaja...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > > wrote: > > > i''m sending multiple ajax.request instances when i search for > > > something when the ''keypress'' event is fired; this is not a problem > > > unless sometimes some ajax.request''s don''t came back in the same order > > > that they was sended... in some cases earlier requests came back after > > > late requests and that can be anoying to the user... i was thinking in > > > atach to the request a timestamp and in the handler function wait for > > > the last timestamp in the last request and dismiss the others; i don''t > > > know if there exists a more elegant way to do this...i was thinking to > > > send the timestamp in the request and send it back from the server and > > > check it that way but i would like to do in the client side only... > > > > > > example: > > > > > > $(''textbox'').observe(''keypress'', this.send_request.bind(this)); > > > > > > ... > > > > > > this.send_request = function() { > > > > > > options.onComplete = this.ajax_handler; // Handler function for the > > > request... > > > > > > var current_date = new Date(); > > > > > > timestamp = current_date.getTime(); > > > > > > options.timestamp=timestamp; // Timestamp in the Ajax options for > > > identify it in the handler... > > > this.expected_timestamp=timestamp; > > > > > > this.ajax_object = new Ajax.Request(''sql.php'', options); // Generate > > > Request... > > > > > > } > > > > > > this.ajax_handler = function(response) { > > > > > > // Do anything i have to do here... > > > // There i need to know the timestamp asociated by the ajax object > > > that triggered this > > > // function in order to use it only if is the last request and dismiss > > > others > > > // .... > > > > > > } > > > > > > thanks in advance for the help... ( and excuse my poor english ...) > > > > > > > > > -- > ----- > Richard Quadling > Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 > "Standing on the shoulders of some very clever giants!" >Eek. A little complicated. Maybe this is a better example ... var a_class = Class.create({ initialize : function() { this.o_AJAX = new Ajax.PeriodicalUpdater(''dot'', location.href, { onSuccess : (function(o_Transport, o_JSON) { this.commonUpdate(); }).bind(this), // BIND calls. }); this.commonUpdate(); }, commonUpdate : function() { // this.xxxx } }); -- ----- Richard Quadling Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 "Standing on the shoulders of some very clever giants!" --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
// there''s the original piece of code where i''m working...
this.ajax_observer = this.refresh_options.bindAsEventListener(this);
var current_time = new Date();
timestamp = current_time.getTime();
__ajax_options.onComplete = this.ajax_observer;
__ajax_options.timestamp = timestamp;
this.espected_timestamp=timestamp;
this.ajax_request = new Ajax.Request(this.ajax_url,
__ajax_options);
there you see i done the binding of the handler function to the
object, and the handler function and the request are part of "this"...
BUT, i need to compare when the handler function is fired, if the
timestamp asociated by the request who''s fired te handler function...
in this way... when i compare
this.ajax_request.options.timestamp==this.espected_timestamp will
return always true, because old request will be overwritten by the new
requests pulled in the this.ajax_request object... in this way i would
not compare the especific timestamp asociated with the especific
request, because the ajax_request object is "disappeared" when i
overwrite this.ajax_request... disapear to the sight but still fires
the handler function ...
i''m thinking that the only way is to return the timestamp from the
server side ...
On 22 nov, 15:04, "Richard Quadling"
<rquadl...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
wrote:> On 22/11/2007, Richard Quadling
<rquadl...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:
>
>
>
> > I think I understand your request.
>
> > The AJAX call back (onSuccess, onComplete) also need to be bound to
this.
>
> > BUT!!!!
>
> > Make sure you have the Ajax request as a property of this ...
>
> > Here is an edited example of a class which has a some methods to
> > process things after an onComplete and also used within the class
> > itself ...
>
> > var classs_Alerter = Class.create({
> > initialize : function() {
> > this.o_AJAX = new
Ajax.PeriodicalUpdater(''dot'', location.href, {
> > frequency : 30,
> > delay : 1,
>
> > // Note binding of "this" - this
relates to main class, not
> > Ajax.PeriodicalUpdater
> > onException : (function(o_Transport, o_JSON) {
> > this.commonUpdate(this);
> > }).bind(this),
>
> > onFailure : (function(o_Transport, o_JSON) {
> >
updateAjaxReport(o_Transport.statusText,
''MAction_Failure_TH'');
> > this.commonUpdate(this);
> > }).bind(this),
>
> > onSuccess : (function(o_Transport, o_JSON) {
> > if (!!o_JSON) {
> >
$(''Jobs'').update(o_JSON.Jobs);
> >
$(''Chase'').update(o_JSON.Chase);
>
> > if (''0 jobs''
!= o_JSON.Jobs) { this.Play1.bind(this).delay(1); }
> > if (''0 jobs''
!= o_JSON.Chase) { this.Play2.bind(this).delay(5); }
> > } else {
> >
updateAjaxReport(''<span class="MErrors_SPAN">There us a
problem
> > with the server.<br />Please tell
Richard.</span>'',
> > ''MAction_Failure_TH'');
> > }
>
> > this.commonUpdate(this);
> > }).bind(this)
> > });
>
> > this.commonUpdate(this);
> > },
>
> > Play1 : function() {
soundManager.play(''mySound1'',''/global/tructyre.mp3'');
},
> > Play2 : function() {
> >
soundManager.play(''mySound2'',''/global/etarequireschasing.mp3'');
},
> > commonUpdate : function(o_Alerter) {
> > o_Alerter.o_Date = new Date();
> > o_Alerter.o_NewDate = new
Date(o_Alerter.o_Date.valueOf() + (1000 *
> > o_Alerter.o_AJAX.decay * o_Alerter.o_AJAX.frequency));
> >
$(''Last'').update(o_Alerter.o_Date.toLocaleString ());
> >
$(''Next'').update(o_Alerter.o_NewDate.toLocaleString ());
> > }
> > });
>
> > document.observe(''dom:loaded'', function(){o_Alterer
= new classs_Alerter();});
>
> > So, within the Ajax handlers you use this.o_AJAX to access the
> > PeriodicalUpdater object.
>
> > On 22/11/2007, Rodrigo Carvajal
<rodrigo.carvaja...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > > maybe it doesn''t understands so well; the issue is
access de
> > > ajax.request instance who fired the handler function, how this
can be
> > > done?...
>
> > > On 21 nov, 20:37, Rodrigo Carvajal
<rodrigo.carvaja...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> > > wrote:
> > > > i''m sending multiple ajax.request instances when i
search for
> > > > something when the ''keypress'' event is
fired; this is not a problem
> > > > unless sometimes some ajax.request''s don''t
came back in the same order
> > > > that they was sended... in some cases earlier requests came
back after
> > > > late requests and that can be anoying to the user... i was
thinking in
> > > > atach to the request a timestamp and in the handler function
wait for
> > > > the last timestamp in the last request and dismiss the
others; i don''t
> > > > know if there exists a more elegant way to do this...i was
thinking to
> > > > send the timestamp in the request and send it back from the
server and
> > > > check it that way but i would like to do in the client side
only...
>
> > > > example:
>
> > > >
$(''textbox'').observe(''keypress'',
this.send_request.bind(this));
>
> > > > ...
>
> > > > this.send_request = function() {
>
> > > > options.onComplete = this.ajax_handler; // Handler function
for the
> > > > request...
>
> > > > var current_date = new Date();
>
> > > > timestamp = current_date.getTime();
>
> > > > options.timestamp=timestamp; // Timestamp in the Ajax
options for
> > > > identify it in the handler...
> > > > this.expected_timestamp=timestamp;
>
> > > > this.ajax_object = new
Ajax.Request(''sql.php'', options); // Generate
> > > > Request...
>
> > > > }
>
> > > > this.ajax_handler = function(response) {
>
> > > > // Do anything i have to do here...
> > > > // There i need to know the timestamp asociated by the ajax
object
> > > > that triggered this
> > > > // function in order to use it only if is the last request
and dismiss
> > > > others
> > > > // ....
>
> > > > }
>
> > > > thanks in advance for the help... ( and excuse my poor
english ...)
>
> > --
> > -----
> > Richard Quadling
> > Zend Certified Engineer
:http://zend.com/zce.php?c=ZEND002498&r=213474731
> > "Standing on the shoulders of some very clever giants!"
>
> Eek. A little complicated.
>
> Maybe this is a better example ...
>
> var a_class = Class.create({
> initialize : function() {
>
> this.o_AJAX = new Ajax.PeriodicalUpdater(''dot'',
location.href, {
>
> onSuccess : (function(o_Transport, o_JSON) {
> this.commonUpdate();
> }).bind(this), // BIND calls.
>
> });
>
> this.commonUpdate();
> },
>
> commonUpdate : function() {
> // this.xxxx
> }
>
> });
>
> --
> -----
> Richard Quadling
> Zend Certified Engineer
:http://zend.com/zce.php?c=ZEND002498&r=213474731
> "Standing on the shoulders of some very clever giants!"
--~--~---------~--~----~------------~-------~--~----~
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 seems to me you''re trying to make the calls be processed in
chronological order, or in other words: asynchronous...
You could try to set the asynchronous option to false, but I (and
many others) strongly advice you don''t... I''t might solve your
problem, but it also negates the benefits of using ajax.
Here goes:
new Ajax.Request(url, { ... }, false);
Greetz,
Wizz
On Nov 22, 9:12 pm, Rodrigo Carvajal
<rodrigo.carvaja...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> // there''s the original piece of code where i''m
working...
>
> this.ajax_observer = this.refresh_options.bindAsEventListener(this);
>
> var current_time = new Date();
>
> timestamp = current_time.getTime();
>
> __ajax_options.onComplete = this.ajax_observer;
> __ajax_options.timestamp = timestamp;
> this.espected_timestamp=timestamp;
>
> this.ajax_request = new Ajax.Request(this.ajax_url,
> __ajax_options);
>
> there you see i done the binding of the handler function to the
> object, and the handler function and the request are part of
"this"...
> BUT, i need to compare when the handler function is fired, if the
> timestamp asociated by the request who''s fired te handler
function...
> in this way... when i compare
> this.ajax_request.options.timestamp==this.espected_timestamp will
> return always true, because old request will be overwritten by the new
> requests pulled in the this.ajax_request object... in this way i would
> not compare the especific timestamp asociated with the especific
> request, because the ajax_request object is "disappeared" when i
> overwrite this.ajax_request... disapear to the sight but still fires
> the handler function ...
>
> i''m thinking that the only way is to return the timestamp from the
> server side ...
>
> On 22 nov, 15:04, "Richard Quadling"
<rquadl...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:
>
> > On 22/11/2007, Richard Quadling
<rquadl...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org> wrote:
>
> > > I think I understand your request.
>
> > > The AJAX call back (onSuccess, onComplete) also need to be bound
to this.
>
> > > BUT!!!!
>
> > > Make sure you have the Ajax request as a property of this ...
>
> > > Here is an edited example of a class which has a some methods to
> > > process things after an onComplete and also used within the class
> > > itself ...
>
> > > var classs_Alerter = Class.create({
> > > initialize : function() {
> > > this.o_AJAX = new
Ajax.PeriodicalUpdater(''dot'', location.href, {
> > > frequency : 30,
> > > delay : 1,
>
> > > // Note binding of "this" -
this relates to main class, not
> > > Ajax.PeriodicalUpdater
> > > onException : (function(o_Transport,
o_JSON) {
> > > this.commonUpdate(this);
> > > }).bind(this),
>
> > > onFailure : (function(o_Transport,
o_JSON) {
> > >
updateAjaxReport(o_Transport.statusText,
''MAction_Failure_TH'');
> > > this.commonUpdate(this);
> > > }).bind(this),
>
> > > onSuccess : (function(o_Transport,
o_JSON) {
> > > if (!!o_JSON) {
> > >
$(''Jobs'').update(o_JSON.Jobs);
> > >
$(''Chase'').update(o_JSON.Chase);
>
> > > if (''0
jobs'' != o_JSON.Jobs) { this.Play1.bind(this).delay(1); }
> > > if (''0
jobs'' != o_JSON.Chase) { this.Play2.bind(this).delay(5); }
> > > } else {
> > >
updateAjaxReport(''<span class="MErrors_SPAN">There us a
problem
> > > with the server.<br />Please tell
Richard.</span>'',
> > > ''MAction_Failure_TH'');
> > > }
>
> > > this.commonUpdate(this);
> > > }).bind(this)
> > > });
>
> > > this.commonUpdate(this);
> > > },
>
> > > Play1 : function() {
soundManager.play(''mySound1'',''/global/tructyre.mp3'');
},
> > > Play2 : function() {
> > >
soundManager.play(''mySound2'',''/global/etarequireschasing.mp3'');
},
> > > commonUpdate : function(o_Alerter) {
> > > o_Alerter.o_Date = new Date();
> > > o_Alerter.o_NewDate = new
Date(o_Alerter.o_Date.valueOf() + (1000 *
> > > o_Alerter.o_AJAX.decay * o_Alerter.o_AJAX.frequency));
> > >
$(''Last'').update(o_Alerter.o_Date.toLocaleString ());
> > >
$(''Next'').update(o_Alerter.o_NewDate.toLocaleString ());
> > > }
> > > });
>
> > > document.observe(''dom:loaded'',
function(){o_Alterer = new classs_Alerter();});
>
> > > So, within the Ajax handlers you use this.o_AJAX to access the
> > > PeriodicalUpdater object.
>
> > > On 22/11/2007, Rodrigo Carvajal
<rodrigo.carvaja...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > > > maybe it doesn''t understands so well; the issue is
access de
> > > > ajax.request instance who fired the handler function, how
this can be
> > > > done?...
>
> > > > On 21 nov, 20:37, Rodrigo Carvajal
<rodrigo.carvaja...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> > > > wrote:
> > > > > i''m sending multiple ajax.request instances
when i search for
> > > > > something when the ''keypress'' event
is fired; this is not a problem
> > > > > unless sometimes some ajax.request''s
don''t came back in the same order
> > > > > that they was sended... in some cases earlier requests
came back after
> > > > > late requests and that can be anoying to the user... i
was thinking in
> > > > > atach to the request a timestamp and in the handler
function wait for
> > > > > the last timestamp in the last request and dismiss the
others; i don''t
> > > > > know if there exists a more elegant way to do this...i
was thinking to
> > > > > send the timestamp in the request and send it back from
the server and
> > > > > check it that way but i would like to do in the client
side only...
>
> > > > > example:
>
> > > > >
$(''textbox'').observe(''keypress'',
this.send_request.bind(this));
>
> > > > > ...
>
> > > > > this.send_request = function() {
>
> > > > > options.onComplete = this.ajax_handler; // Handler
function for the
> > > > > request...
>
> > > > > var current_date = new Date();
>
> > > > > timestamp = current_date.getTime();
>
> > > > > options.timestamp=timestamp; // Timestamp in the Ajax
options for
> > > > > identify it in the handler...
> > > > > this.expected_timestamp=timestamp;
>
> > > > > this.ajax_object = new
Ajax.Request(''sql.php'', options); // Generate
> > > > > Request...
>
> > > > > }
>
> > > > > this.ajax_handler = function(response) {
>
> > > > > // Do anything i have to do here...
> > > > > // There i need to know the timestamp asociated by the
ajax object
> > > > > that triggered this
> > > > > // function in order to use it only if is the last
request and dismiss
> > > > > others
> > > > > // ....
>
> > > > > }
>
> > > > > thanks in advance for the help... ( and excuse my poor
english ...)
>
> > > --
> > > -----
> > > Richard Quadling
> > > Zend Certified Engineer
:http://zend.com/zce.php?c=ZEND002498&r=213474731
> > > "Standing on the shoulders of some very clever giants!"
>
> > Eek. A little complicated.
>
> > Maybe this is a better example ...
>
> > var a_class = Class.create({
> > initialize : function() {
>
> > this.o_AJAX = new Ajax.PeriodicalUpdater(''dot'',
location.href, {
>
> > onSuccess : (function(o_Transport, o_JSON) {
> > this.commonUpdate();
> > }).bind(this), // BIND calls.
>
> > });
>
> > this.commonUpdate();
> > },
>
> > commonUpdate : function() {
> > // this.xxxx
> > }
>
> > });
>
> > --
> > -----
> > Richard Quadling
> > Zend Certified Engineer
:http://zend.com/zce.php?c=ZEND002498&r=213474731
> > "Standing on the shoulders of some very clever giants!"
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---