Flash 如何从actionscript发出同步URL请求?
我在actionscript中有一个大循环,它将大量数据发送到url:Flash 如何从actionscript发出同步URL请求?,flash,actionscript-3,synchronous,Flash,Actionscript 3,Synchronous,我在actionscript中有一个大循环,它将大量数据发送到url: for(var i=0;i<1000;i++) { var request:URLRequest = new URLRequest(); request.url = url; request.method = URLRequestMethod.POST; request.data = data; var loader:URLLoader = new URLLoader();
for(var i=0;i<1000;i++) {
var request:URLRequest = new URLRequest();
request.url = url;
request.method = URLRequestMethod.POST;
request.data = data;
var loader:URLLoader = new URLLoader();
loader.load(request);
}
for(var i=0;i您不能进行同步调用,但您可以等到服务器应答后再发送另一个请求
但是,如果你真的必须在一个循环中向一个Web服务器发送一千个请求,那么可能存在设计缺陷
// small example to see how do the chaining call
class A extends EventDispatcher {
private var urlLoader:URLLoader;
private var urlRequest:URLRequest;
private var sendCount:int=0;
//......
public function init(url:String):void{
urlLoader=new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, sendData);
urlRequest = new URLRequest();
request.url = url;
request.method = URLRequestMethod.POST;
count=1000;
}
//....
private var data:Object;
//.....
//
function sendData(e:Event=null):void{
if (count-- > 0) {
urlRequest.data = data; // put the data based on the counter
urlLoader.load(urlRequest);
} else {
urlLoader.removeEventListener(Event.COMPLETE, sendData);
dispatchEvent(new Event(Event.COMPLETE));
}
}
}
var a:A=new A();
a.addEventListener(Event.COMPLETE, function():void{
trace("send finished");
}); // listen to the event complete so
// you know when you send is finished
a.init("http://...."); // ok init your send
a.sendData(); // and start the send that will be chain each time the webserver answer