Use a single HTTPService instance, and a single result handler.

When you invoke send(), it returns an AsyncToken.  This is a dynamic object to 
which you can add almost any property.  I usually add a callid string property.

Then in the result handler, I can access the callid property value, and process 
the result data accordingly.

Tracy

Snippets:

Sample code using HTTPService, e4x, handler function to populate a list item.  
Also shows usage of AsyncToken.

The DataGrid tag:
<mx:DataGrid id="dg" dataProvider="{_xlcMyListData}" .../>


The HTTPService tag:
<mx:HTTPService id="service" resultFormat="e4x" result="onResult(event)" 
fault="..../>

Script block declaration:
import mx.rpc.Events.ResultEvent;
[Bindable]private var _xlcMyListData:XMLListCollection;

Invoke send:
var oRequest:Object = new Object();
oRequest.Arg1 = "value1";
var callToken:AsyncToken = service.send(oRequest);
token.callId = "myQuery1";

Result Handler function:
private function onResult(oEvent:ResultEvent):void  {
  var xmlResult:XML = XML(event.result);                //converts result 
Object to XML. can also use "as" operator
  var xlMyListData:XMLList = xmlResult.myListData;      //depends on xml 
format, is row data
  _xlcMyListData = new XMLListCollection(xlMyListData); //wrap the XMLList in a 
collection
  trace(_xlcMyListData.toXMLString());                  //so you can see 
exactly how to specify dataField or build labelFunction
  var callToken:AsyncToken = oEvent.token;
  var sCallId = callToken.callId;                       //"myQuery1"
  switch(sCallId)  {
    case "myQuery1":
      doQuery2();
      break;
    ... 
  }
}//onResult

________________________________________
From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of Mansour 
Raad
Sent: Thursday, September 27, 2007 3:32 PM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] multiple http requests

the player is limited by the number concurrent http to the _same_ domain of the 
browser (typically 2)
If u target multiple domains at once - then u should be ok - so - create 
www.host[abcde...].com 

Mansour
http://thunderheadxpler.blogspot.com
:-)



On Sep 27, 2007, at 11:35 AM, Randy Troppmann wrote:


My application sometimes needs to make a flurry of http requests to a
web service to populate some values. So it may send out 10 in a row
quickly. Although the responses always come back in the order that
they were requested, I am pretty sure that I cannot rely on this
always being so. So I cache the calls and send them out one at a time
and only when the previous response has been recieved. But this makes
the mechanism pretty slow. Is there a better way or a pattern I should
look at?

- Randy


--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links





Mansour
http://thunderheadxpler.blogspot.com
:-)




 

Reply via email to