RSL不只一个,这些RSL被Flex框架串行加载,即加载完一个后再加载下一个。
>>源代码片断佐证: mx.core.RsllistLoader.as
package mx.core
{
//构造函数,调用函数loadNext()加载第一个RSL
public function load(progressHandler:Function,
completeHandler:Function,
ioErrorHandler:Function,
securityErrorHandler:Function,
rslErrorHandler:Function):void
{
chainedProgressHandler = progressHandler;
chainedCompleteHandler = completeHandler;
chainedioErrorHandler = ioErrorHandler;
chainedSecurityErrorHandler = securityErrorHandler;
chainedRSLErrorHandler = rslErrorHandler;
currentIndex = -1; // so first loaded item will be index 0
loadNext();
}
//加载RSL
private function loadNext():void
{
if (!isDone())
{
currentIndex++;
// Load the current RSL.
if (currentIndex < rsllist.length)
{
// Load rsl and have the RSL loader chain the
// events our internal events handler or the chained
// events handler if we don't care about them.
rsllist[currentIndex].load(chainedProgressHandler,
listCompleteHandler,
listIOErrorHandler,
listSecurityErrorHandler,
chainedRSLErrorHandler);
}
}
}
//一个RSL加载完毕后,再加载下一个
private function listCompleteHandler(event:Event):void
{
// Pass event to external listener.
if (chainedCompleteHandler != null)
chainedCompleteHandler(event);
// Load the next RSL.
loadNext();
}
}
========================================================================
>>猜测:为什么不采用并发下载?
(1)。FlashPlayer的并发下载功能有缺陷,造成并发下载的时候会莫名出现问题。
参考: 《同时new了多个URLLoader 加载文件时所遇到的问题》
http://bbs.9ria.com/thread-88518-1-1.html
(2)。http协议中对客户端请求连接数的限制
参考: 《IE并发连接限制(as)AS队列加载类(as3和as2)》
http://kb.cnblogs.com/a/1583038/
参考: 《“HTTP协议对客户端并发连接数目的限制” vs “Flex并行上传或下载” 》
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。