This is slightly OT for which I apologise in advance, but I was wondering if anyone here has had any problems when making multiple ajax calls at the same time. I''m working on a large Intranet application which makes heavy use of ajax calls and the bugs are flying in from the testers that if they repeatedly click on a link that makes an ajax call then Internet Explorer can fall over. Obviously I''m making fixes to get around this by disabling the links while the calls are made to stop this but it seems that the way XMLHTTP works in IE and Mozilla is quite different. If a lot of calls are made with IE it seems to try to make them straight away which can cause problems. FireFox on the other hand seems to wait and make the calls sequentially which can take some time, but at least works. I was wondering if anyone else here had noticed anything similar and, if so, if you''d come up with anyway of stopping IE trying to make too many calls at once. Eifion
afaik firefox has a limit of 2 concurrent xmlhttp requests and ie not ... you could build a sort of queue for your requests (queueing ajax requests if active request count > 2 or sth else) hth 2006/1/30, Eifion <eifs-FhtRXb7CoQBt1OO0OYaSVA@public.gmane.org>:> > This is slightly OT for which I apologise in advance, but I was > wondering if anyone here has had any problems when making multiple > ajax calls at the same time. I''m working on a large Intranet > application which makes heavy use of ajax calls and the bugs are > flying in from the testers that if they repeatedly click on a link > that makes an ajax call then Internet Explorer can fall over. > Obviously I''m making fixes to get around this by disabling the links > while the calls are made to stop this but it seems that the way > XMLHTTP works in IE and Mozilla is quite different. If a lot of calls > are made with IE it seems to try to make them straight away which can > cause problems. FireFox on the other hand seems to wait and make the > calls sequentially which can take some time, but at least works. > > I was wondering if anyone else here had noticed anything similar and, > if so, if you''d come up with anyway of stopping IE trying to make too > many calls at once. > > Eifion > _______________________________________________ > Rails-spinoffs mailing list > Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs >-- Mit freundlichen Grüßen Siegfried Puchbauer _______________________________________________ Rails-spinoffs mailing list Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
I have written this small script for queuing ajax calls. Hope this helps.
//---------------------------------------------------------------------
var AjaxQueue = {
batchSize: 1,
urlQueue: [],
elementsQueue: [],
optionsQueue: [],
setBatchSize: function(bSize){
this.batchSize = bSize;
},
push: function(url, options, elementID){
this.urlQueue.push(url);
this.optionsQueue.push(options);
if(elementID!=null){
this.elementsQueue.push(elementID);
} else {
this.elementsQueue.push("NOTSPECIFIED");
}
this.processNext();
},
processNext: function() {
if(Ajax.activeRequestCount < AjaxQueue.batchSize)
{
if(AjaxQueue.elementsQueue.first()=="NOTSPECIFIED") {
new Ajax.Request(AjaxQueue.urlQueue.shift(),
AjaxQueue.optionsQueue.shift());
var junk = AjaxQueue.elementsQueue.shift();
} else {
new Ajax.Updater(AjaxQueue.elementsQueue.shift(),
AjaxQueue.urlQueue.shift(), AjaxQueue.optionsQueue.shift());
}
}
}
};
Ajax.Responders.register({
onComplete: AjaxQueue.processNext
});
//------------------------------------------------------------------------
All the ajax calls should be pushed into the queue. You can set a batch size ie
the no.of simultaneous ajax calls to be processed.
Usage:
Ex: AjaxQueue.setBatchSize(2);
-----Original Message-----
From: rails-spinoffs-bounces-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
[mailto:rails-spinoffs-bounces-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org]On
Behalf Of Eifion
Sent: Monday, January 30, 2006 5:39 PM
To: rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
Subject: [Rails-spinoffs] Multiple ajax calls
This is slightly OT for which I apologise in advance, but I was
wondering if anyone here has had any problems when making multiple
ajax calls at the same time. I''m working on a large Intranet
application which makes heavy use of ajax calls and the bugs are
flying in from the testers that if they repeatedly click on a link
that makes an ajax call then Internet Explorer can fall over.
Obviously I''m making fixes to get around this by disabling the links
while the calls are made to stop this but it seems that the way
XMLHTTP works in IE and Mozilla is quite different. If a lot of calls
are made with IE it seems to try to make them straight away which can
cause problems. FireFox on the other hand seems to wait and make the
calls sequentially which can take some time, but at least works.
I was wondering if anyone else here had noticed anything similar and,
if so, if you''d come up with anyway of stopping IE trying to make too
many calls at once.
Eifion
_______________________________________________
Rails-spinoffs mailing list
Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
Adding requests to the queue:
AjaxQueue.push(url, options); // for Ajax.request
AjaxQueue.push(url, options, elementId); // for Ajax.updater calls
Default batch size is 1.
-----Original Message-----
From: rails-spinoffs-bounces-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
[mailto:rails-spinoffs-bounces-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org]On
Behalf Of Irfan,
Ghouseuddin Syed
Sent: Monday, January 30, 2006 5:57 PM
To: rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
Subject: RE: [Rails-spinoffs] Multiple ajax calls
I have written this small script for queuing ajax calls. Hope this helps.
//---------------------------------------------------------------------
var AjaxQueue = {
batchSize: 1,
urlQueue: [],
elementsQueue: [],
optionsQueue: [],
setBatchSize: function(bSize){
this.batchSize = bSize;
},
push: function(url, options, elementID){
this.urlQueue.push(url);
this.optionsQueue.push(options);
if(elementID!=null){
this.elementsQueue.push(elementID);
} else {
this.elementsQueue.push("NOTSPECIFIED");
}
this.processNext();
},
processNext: function() {
if(Ajax.activeRequestCount < AjaxQueue.batchSize)
{
if(AjaxQueue.elementsQueue.first()=="NOTSPECIFIED") {
new Ajax.Request(AjaxQueue.urlQueue.shift(),
AjaxQueue.optionsQueue.shift());
var junk = AjaxQueue.elementsQueue.shift();
} else {
new Ajax.Updater(AjaxQueue.elementsQueue.shift(),
AjaxQueue.urlQueue.shift(), AjaxQueue.optionsQueue.shift());
}
}
}
};
Ajax.Responders.register({
onComplete: AjaxQueue.processNext
});
//------------------------------------------------------------------------
All the ajax calls should be pushed into the queue. You can set a batch size ie
the no.of simultaneous ajax calls to be processed.
Usage:
Ex: AjaxQueue.setBatchSize(2);
-----Original Message-----
From: rails-spinoffs-bounces-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
[mailto:rails-spinoffs-bounces-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org]On
Behalf Of Eifion
Sent: Monday, January 30, 2006 5:39 PM
To: rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
Subject: [Rails-spinoffs] Multiple ajax calls
This is slightly OT for which I apologise in advance, but I was
wondering if anyone here has had any problems when making multiple
ajax calls at the same time. I''m working on a large Intranet
application which makes heavy use of ajax calls and the bugs are
flying in from the testers that if they repeatedly click on a link
that makes an ajax call then Internet Explorer can fall over.
Obviously I''m making fixes to get around this by disabling the links
while the calls are made to stop this but it seems that the way
XMLHTTP works in IE and Mozilla is quite different. If a lot of calls
are made with IE it seems to try to make them straight away which can
cause problems. FireFox on the other hand seems to wait and make the
calls sequentially which can take some time, but at least works.
I was wondering if anyone else here had noticed anything similar and,
if so, if you''d come up with anyway of stopping IE trying to make too
many calls at once.
Eifion
_______________________________________________
Rails-spinoffs mailing list
Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
_______________________________________________
Rails-spinoffs mailing list
Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
Thanks. I''ll have a look at this. Eifion On 30 Ion 2006, at 12:27, Irfan, Ghouseuddin Syed wrote:> I have written this small script for queuing ajax calls. Hope this > helps. > > //-------------------------------------------------------------------- > - > var AjaxQueue = { > batchSize: 1, > urlQueue: [], > elementsQueue: [], > optionsQueue: [], > setBatchSize: function(bSize){ > this.batchSize = bSize; > }, > push: function(url, options, elementID){ > this.urlQueue.push(url); > this.optionsQueue.push(options); > if(elementID!=null){ > this.elementsQueue.push(elementID); > } else { > this.elementsQueue.push("NOTSPECIFIED"); > } > > this.processNext(); > }, > processNext: function() { > if(Ajax.activeRequestCount < AjaxQueue.batchSize) > { > if(AjaxQueue.elementsQueue.first()=="NOTSPECIFIED") { > new Ajax.Request(AjaxQueue.urlQueue.shift(), > AjaxQueue.optionsQueue.shift()); > var junk = AjaxQueue.elementsQueue.shift(); > } else { > new Ajax.Updater(AjaxQueue.elementsQueue.shift(), > AjaxQueue.urlQueue.shift(), AjaxQueue.optionsQueue.shift()); > } > > } > } > }; > Ajax.Responders.register({ > onComplete: AjaxQueue.processNext > }); > > //-------------------------------------------------------------------- > ---- > > All the ajax calls should be pushed into the queue. You can set a > batch size ie the no.of simultaneous ajax calls to be processed. > > Usage: > Ex: AjaxQueue.setBatchSize(2); > > > > > -----Original Message----- > From: rails-spinoffs-bounces-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > [mailto:rails-spinoffs-bounces-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org]On Behalf Of > Eifion > Sent: Monday, January 30, 2006 5:39 PM > To: rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > Subject: [Rails-spinoffs] Multiple ajax calls > > > This is slightly OT for which I apologise in advance, but I was > wondering if anyone here has had any problems when making multiple > ajax calls at the same time. I''m working on a large Intranet > application which makes heavy use of ajax calls and the bugs are > flying in from the testers that if they repeatedly click on a link > that makes an ajax call then Internet Explorer can fall over. > Obviously I''m making fixes to get around this by disabling the links > while the calls are made to stop this but it seems that the way > XMLHTTP works in IE and Mozilla is quite different. If a lot of calls > are made with IE it seems to try to make them straight away which can > cause problems. FireFox on the other hand seems to wait and make the > calls sequentially which can take some time, but at least works. > > I was wondering if anyone else here had noticed anything similar and, > if so, if you''d come up with anyway of stopping IE trying to make too > many calls at once. > > Eifion > _______________________________________________ > Rails-spinoffs mailing list > Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs > _______________________________________________ > Rails-spinoffs mailing list > Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org > http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
Code for AjaxQueue with example usage:
var AjaxQueue = {
batchSize: 1, //No.of simultaneous AJAX requests allowed, Default : 1
urlQueue: [], //Request URLs will be pushed into this array
elementsQueue: [], //Element IDs of elements to be updated on completion of a
request ( as in Ajax.Updater )
optionsQueue: [], //Request options will be pushed into this array
setBatchSize: function(bSize){ //Method to set a different batch size.
Recommended: Set batchSize before making requests
this.batchSize = bSize;
},
push: function(url, options, elementID){ //Push the request in the queue.
elementID is optional and required only for Ajax.Updater calls
this.urlQueue.push(url);
this.optionsQueue.push(options);
if(elementID!=null){
this.elementsQueue.push(elementID);
} else {
this.elementsQueue.push("NOTSPECIFIED");
}
this._processNext();
},
_processNext: function() { // Method for processing the requests in the queue.
Private method. Don''t call it explicitly
if(Ajax.activeRequestCount < AjaxQueue.batchSize) // Check if the currently
processing request count is less than batch size
{
if(AjaxQueue.elementsQueue.first()=="NOTSPECIFIED") { //Check if an
elementID was specified
// Call Ajax.Request if no ElementID specified
//Call Ajax.Request on the first item in the queue and remove it from the
queue
new Ajax.Request(AjaxQueue.urlQueue.shift(),
AjaxQueue.optionsQueue.shift());
var junk = AjaxQueue.elementsQueue.shift();
} else {
// Call Ajax.Updater if an ElementID was specified.
//Call Ajax.Updater on the first item in the queue and remove it from the
queue
new Ajax.Updater(AjaxQueue.elementsQueue.shift(),
AjaxQueue.urlQueue.shift(), AjaxQueue.optionsQueue.shift());
}
}
}
};
Ajax.Responders.register({
//Call AjaxQueue._processNext on completion ( success / failure) of any AJAX
call.
onComplete: AjaxQueue._processNext
});
/************* SYNTAX ***************
AjaxQueue.setBatchSize(size);
AjaxQueue.push(URL , OPTIONS, [ElementID]);
************** USAGE ***************
AjaxQueue.setBatchSize(4);
AjaxQueue.push("http://www.testingqueue.com/process/",{onSucess:
funcSuccess, onfailure: funcFailure});
AjaxQueue.push("http://www.testingqueue.com/process1/",{onSucess:
funcSuccess1, onfailure: funcFailure1}, "myDiv");
AjaxQueue.push("http://www.testingqueue.com/process2/",{onSucess:
funcSuccess2, onfailure: funcFailure2});
AjaxQueue.push("http://www.testingqueue.com/process3/",{onSucess:
funcSuccess3, onfailure: funcFailure3});
AjaxQueue.push("http://www.testingqueue.com/process4/",{onSucess:
funcSuccess4, onfailure: funcFailure4});
AjaxQueue.push("http://www.testingqueue.com/process5/",{onSucess:
funcSuccess5, onfailure: funcFailure5});
**********************************/
-----Original Message-----
From: rails-spinoffs-bounces-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
[mailto:rails-spinoffs-bounces-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org]On
Behalf Of Eifion
Sent: Monday, January 30, 2006 6:12 PM
To: rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
Subject: Re: [Rails-spinoffs] Multiple ajax calls
Thanks. I''ll have a look at this.
Eifion
On 30 Ion 2006, at 12:27, Irfan, Ghouseuddin Syed wrote:
> I have written this small script for queuing ajax calls. Hope this
> helps.
>
> //--------------------------------------------------------------------
> -
> var AjaxQueue = {
> batchSize: 1,
> urlQueue: [],
> elementsQueue: [],
> optionsQueue: [],
> setBatchSize: function(bSize){
> this.batchSize = bSize;
> },
> push: function(url, options, elementID){
> this.urlQueue.push(url);
> this.optionsQueue.push(options);
> if(elementID!=null){
> this.elementsQueue.push(elementID);
> } else {
> this.elementsQueue.push("NOTSPECIFIED");
> }
>
> this.processNext();
> },
> processNext: function() {
> if(Ajax.activeRequestCount < AjaxQueue.batchSize)
> {
> if(AjaxQueue.elementsQueue.first()=="NOTSPECIFIED") {
> new Ajax.Request(AjaxQueue.urlQueue.shift(),
> AjaxQueue.optionsQueue.shift());
> var junk = AjaxQueue.elementsQueue.shift();
> } else {
> new Ajax.Updater(AjaxQueue.elementsQueue.shift(),
> AjaxQueue.urlQueue.shift(), AjaxQueue.optionsQueue.shift());
> }
>
> }
> }
> };
> Ajax.Responders.register({
> onComplete: AjaxQueue.processNext
> });
>
> //--------------------------------------------------------------------
> ----
>
> All the ajax calls should be pushed into the queue. You can set a
> batch size ie the no.of simultaneous ajax calls to be processed.
>
> Usage:
> Ex: AjaxQueue.setBatchSize(2);
>
>
>
>
> -----Original Message-----
> From:
rails-spinoffs-bounces-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
>
[mailto:rails-spinoffs-bounces-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org]On
Behalf Of
> Eifion
> Sent: Monday, January 30, 2006 5:39 PM
> To: rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
> Subject: [Rails-spinoffs] Multiple ajax calls
>
>
> This is slightly OT for which I apologise in advance, but I was
> wondering if anyone here has had any problems when making multiple
> ajax calls at the same time. I''m working on a large Intranet
> application which makes heavy use of ajax calls and the bugs are
> flying in from the testers that if they repeatedly click on a link
> that makes an ajax call then Internet Explorer can fall over.
> Obviously I''m making fixes to get around this by disabling the
links
> while the calls are made to stop this but it seems that the way
> XMLHTTP works in IE and Mozilla is quite different. If a lot of calls
> are made with IE it seems to try to make them straight away which can
> cause problems. FireFox on the other hand seems to wait and make the
> calls sequentially which can take some time, but at least works.
>
> I was wondering if anyone else here had noticed anything similar and,
> if so, if you''d come up with anyway of stopping IE trying to make
too
> many calls at once.
>
> Eifion
> _______________________________________________
> Rails-spinoffs mailing list
> Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
> http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
> _______________________________________________
> Rails-spinoffs mailing list
> Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
> http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs
_______________________________________________
Rails-spinoffs mailing list
Rails-spinoffs-1W37MKcQCpIf0INCOvqR/iCwEArCW2h5@public.gmane.org
http://lists.rubyonrails.org/mailman/listinfo/rails-spinoffs