【问题标题】:Flash/AS3 - is there a limit to the number of simultaneous URLLoader.load() requests?Flash/AS3 - 同时 URLLoader.load() 请求的数量是否有限制?
【发布时间】:2011-03-16 15:16:44
【问题描述】:

全部,

我正在处理一个发出大量 URLLoader.load() 请求的 Flash/AS3 项目。

我是否应该将它们排队以便在任何时候只有一个打开的请求?或者,允许多个打开请求是一种好习惯吗?

打开请求的数量有限制吗?

(我假设我可以管理 UI 中的含义)。

我已经在本地运行了最多 5 个同时请求的测试,并且运行良好。但我需要确保该应用程序能够在现场运行,适用于使用旧 PC、旧浏览器、具有多个打开选项卡的浏览器等的用户。

非常感谢您提供任何建议和见解!

【问题讨论】:

  • 我发现一次使用多个会加快速度,但如果我的 UI 在加载时正在做任何事情,那么活跃的加载器越多,我的 UI 变得越迟钝。我假设它只是限制 FPS 的 IO 使用......

标签: flash actionscript-3 urlloader


【解决方案1】:

我很久以前在尝试加载大量图像时遇到了这个问题。它们都是本地的,所以我只是将它们与装载机一起排队。排队时间调试图像为何为空:S

我不确定是否在任何地方都提到了限制,但我发现(如果没记错的话)大约 30 给我带来了问题。在那之后,我认为它会重用旧连接:所以如果你有 100 个 load() 调用,只有最后 30 个左右会被加载。

通常我一次排队大约 10 个,然后在完成后加载其余的。多个连接没有真正的问题 - 尽管它们会开始占用 CPU 功率等。

如果您只想忽略此内容,请查看为此创建的 BulkLoader:http://code.google.com/p/bulk-loader/ 之类的内容

【讨论】:

  • 要注意的另一件事是加载器和 URLLoaders 超出范围。请务必保留对它们的引用,直到它们的完成或错误事件之一发生,特别是如果您对侦听器使用弱引用。我注意到如果它们在调用 load 后超出范围,有时负载会在垃圾收集器到达之前潜入一个完整的事件中,让你认为一切正常,但大多数时候调用后什么都没有发生load -- 当加载器超出范围时,既不调度错误也不调度事件。
【解决方案2】:

我不知道这是否有任何硬性限制,但 5 个同时请求听起来很合理。 我知道大多数浏览器使用 6 个同时连接,这可能也是 Flash 的限制。

我会使用类似 5 个加载器,并将所有超出此范围的加载事务排队。

【讨论】:

    【解决方案3】:

    这个问题很久以前了。我从 Google 来到这里,但感谢您的回答。

    情况可能已经改变。我只是在 Flex 4.6 和 AS 3 上测试重用 URLLoader.load。

    这里有一个棘手且未记录的限制。 loader 可以重复使用,但只有最后一个请求在一次回调中发出。

    例如

    timer:Timer = new Timer(5000);
    timer.addEventListener(TimerEvent.TIMER, timerHandle);
    timer.start();
    var loader:URLLoader = new URLLoader(); // and need to add listeners for response
    
    function timerHandle(e:TimerEvent):void {
        loader.load(certainURLRequest);
    }
    

    这很好用。但是下面的方法没有。

    function timerHandle(e:TimerEvent):void {
        loader.load(firstURLRequest); // this request didn't get issued
        loader.load(secondURLRequest); // this request got sent
    }
    

    我不知道内部情况。这可能与 ActionScript 的单线程 EventLoop 方式有关,请求会在回调返回后处理,最后一个覆盖前一个。这都是我的猜测。

    希望这对来到这里的追随者有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-27
      • 1970-01-01
      相关资源
      最近更新 更多