3

全て、

多数のURLLoader.load()リクエストを行うFlash/AS3プロジェクトに取り組んでいます。

いつでもオープンリクエストが1つだけになるように、それらをキューに入れる必要がありますか?または、複数のオープンリクエストを許可することをお勧めしますか?

オープンリクエストの数に制限はありますか?

(UIで影響を管理できると思います)。

最大5つの同時リクエストでローカルでテストを実行しましたが、問題なく動作します。ただし、古いPC、古いブラウザ、複数のタブが開いているブラウザなどを使用しているユーザーの場合、アプリケーションが現場で機能することを確認する必要があります。

アドバイスや洞察を事前に感謝します!

4

3 に答える 3

3

何年も前に大量の画像を読み込もうとしていたときに、この問題に遭遇しました。それらはすべてローカルだったので、ローダーと一緒にキューに入れました。画像がnullである理由をデバッグするキュー時間:S

制限がどこかで言及されているかどうかはわかりませんが、(メモリが役立つ場合)約30が問題を引き起こしていることがわかりました。その後、古い接続が再利用されると思います。したがって、load()呼び出しが100回ある場合、最後の30回程度しかロードされません。

通常、私は一度に約10をキューに入れ、完了したら残りをロードします。複数の接続で実際の問題はありませんが、CPUパワーなどを消費し始めます。

これを無視したい場合は、BulkLoaderのようなものをチェックしてください:このために作成されたhttp://code.google.com/p/bulk-loader/

于 2011-03-16T16:06:48.143 に答える
2

これに厳しい制限があるかどうかはわかりませんが、5つの同時リクエストは非常に合理的に聞こえます。私はほとんどのブラウザが6つの同時接続のように使用することを知っています、そしておそらくそれはFlashの限界でもあります。

5つのローダーのようなものを使用し、それを超えるすべてのロードトランザクションをキューに入れます。

于 2011-03-16T16:06:45.157 に答える
0

この質問はずっと前のことです。私はグーグルからここに来ましたが、答えてくれてありがとう。

物事が変わったかもしれません。Flex4.6とAS3でURLLoader.loadを再利用してテストします。

ここには、注意が必要で文書化されていない制限があります。ローダーは再利用できますが、コールバックの1回で最後の要求のみが発行されました。

元。

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の方法に関連している可能性があります。この場合、要求はコールバックから戻った後に処理され、最後の方法が前の方法を上書きします。それはすべて私の推測です。

これがフォロワーがここに来るのに役立つことを願っています。

于 2015-03-12T12:55:34.923 に答える