Hi Tracy
This is not public web service, it is my company web service.
And we did JSP, ASP to call same ws, it is fast.
I did test with a very small web service, it run little bit
faster than this.
Here is my code, I did many test by it. so, it is not neat,
sorry. Could you take a look on it? you may found out the problem.
Thank you very much.
<?xml version="1.0"?>
<!-- Simple example to demonstrate the HDividedBox layout
-->
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml"
xmlns="*">
<mx:Script>
<![CDATA[
import mx.utils.ObjectUtil;
import mx.rpc.events.ResultEvent;
import mx.utils.StringUtil;
import mx.utils.ArrayUtil;
import mx.collections.*;
import mx.rpc.soap.*;
import mx.logging.*;
[Bindable]
public var selectedNode:Object;
[Bindable]
public var XLC:XML;
[Bindable]
public var result:Array;
[Bindable]
public var selectedCred:Object;
[Bindable]
public var selectedRoot:Object;
[Bindable]
public var WebPuid:String;
[Bindable]
public var webRootInfo:Object;
[Bindable]
public var folderXML:Object;
[Bindable]
public var xmlData:XMLListCollection;
[Bindable]
public var arData:Array;
[Bindable]
public var fcID:String;
[Bindable]
public var acData:ArrayCollection;
[Bindable]
public var myDate1:Date;
[Bindable]
public var myDate2:Date;
[Bindable]
public var timee:Number;
// Event handler for the Tree control change event.
public function treeChanged(event:Event) : void
{
selectedNode=Tree(event.target).selectedItem;
}
public function getCred(event:Event):void{
MyServices.getCred.send();
var logger:ILogger = Log.getLogger("mx.messaging.Channel");
logger.debug("nxx:Start time: {0}",
myDate1.time.toString());
selectedCred = MyServices.getCred.lastResult;
logger.debug("nxx:End time: {0}, total:{1}",
myDate2.time.toString(), timee);
}
public function getRoot(event:Event):void{
myDate1 = new Date();
timeLab1.text=myDate1.time.toString();
MyServices.getWebRoot.send();
//MyServices.getFolderContents.send();
}
public function getFolder(event:Event):void{
MyServices.getFolderContents.send();
}
public function handleWebRoot(event:ResultEvent):void{
webRootInfo=event.result;
myDate2 = new Date();
timeLab2.text=myDate2.time.toString();
timee=myDate2.time-myDate1.time;
myrootid.text=webRootInfo.ContentFolder.Puid;
}
public function
handleFolderContents(event:ResultEvent):void{
folderXML=event.result;
}
]]>
</mx:Script>
<mx:Model id="credModel">
{MyServices.getCred.lastResult}
</mx:Model>
<!--mx:Model id="webRootInfo">
{MyServices.getWebRoot.lastResult.ContentFolder}
</mx:Model-->
<!--mx:Model id="treeModel">
{MyServices.getFolderContents.lastResult}
</mx:Model-->
<mx:WebService id="MyServices" destination="cetgWS"
useProxy="true" showBusyCursor="true"
makeObjectsBindable="false">
<mx:operation name="getCred">
<mx:request xmlns="">
<Username>
{username.text}
</Username>
<Password>
{password.text}
</Password>
</mx:request>
</mx:operation>
<mx:operation name="getWebRoot"
result="handleWebRoot(event)">
<mx:request xmlns="">
<Credentials>
{credModel}
</Credentials>
<WebRootItemId>
Ddb1000160-GEN-001
</WebRootItemId>
</mx:request>
</mx:operation>
<mx:operation name="getFolderContents"
result="handleFolderContents(event)" resultFormat="e4x">
<mx:request xmlns="">
<Credentials>
{credModel}
</Credentials>
<FolderPuid>
{webRootInfo.ContentFolder.Puid}
</FolderPuid>
</mx:request>
</mx:operation>
</mx:WebService>
<mx:HDividedBox width="90%" height="90%">
<mx:VDividedBox width="30%" height="100%">
<mx:Panel title="Accordion Container Example"
height="65%" width="100%"
paddingTop="10" paddingLeft="10" paddingRight="10"
paddingBottom="10">
<mx:Label text="Select an Accordion navigator button to
change the panel."/>
<mx:Accordion id="accordion" width="100%"
height="100%">
<mx:VBox label="Panel 1" height="100%" width="100%">
<mx:Label text="CETG Services"/>
<mx:Label text="User Name:"/>
<mx:TextInput id="username"/>
<mx:Label text="Password:"/>
<mx:TextInput id="password" displayAsPassword="true"/>
<mx:Button label="Get Credentail"
click="getCred(event)"/>
<mx:Button label="Get WebRoot"
click="getRoot(event)"/>
<mx:Button label="Get folder Content"
click="getFolder(event)"/>
</mx:VBox>
</mx:Accordion>
</mx:Panel>
<mx:Panel title="Tree Control Example" height="35%"
width="100%"
paddingTop="10" paddingLeft="10" paddingRight="10"
paddingBottom="10">
<mx:Tree id="myTree" width="100%" height="100%"
labelField="@label"
showRoot="false" dataProvider="{folderXML}"
change="treeChanged(event)"/>
</mx:Panel>
</mx:VDividedBox>
<mx:Panel title="TabNavigator Container Example"
height="100%" width="70%"
paddingTop="10" paddingLeft="10" paddingRight="10"
paddingBottom="10">
<mx:TabNavigator id="tn" width="100%" height="100%">
<!-- Define each panel using a VBox container. -->
<mx:VBox label="Panel 1">
<mx:Label text="Time:"/>
<mx:TextInput id="timeinp" text="{timee}"/>
<mx:Label text="credential:"/>
<mx:TextInput id="credinp" text="{credModel.Puid}"/>
<mx:Label id="selectedCol" />
<mx:Label id="timeLab1" />
<mx:Label id="timeLab2" />
</mx:VBox>
<mx:VBox label="Panel 2">
<mx:TextInput id="myrootid" />
<mx:DataGrid id="wrData"
dataProvider="{webRootInfo.ContentFolder}" width="80%">
<mx:columns>
<mx:DataGridColumn dataField="StyleFolder"
headerText="GID"/>
<mx:DataGridColumn dataField="ContentFolder"
headerText="Name"/>
<mx:DataGridColumn dataField="Puid"
headerText="Puid"/>
<mx:DataGridColumn dataField="Name"
headerText="Name"/>
</mx:columns>
</mx:DataGrid>
</mx:VBox>
</mx:TabNavigator>
</mx:Panel>
</mx:HDividedBox>
</mx:Application>