1

最近はRSLに関してよく読んでいます。1つの欠点は、RSLをメモリにロードする必要がありますが、ロード時間を大幅に節約できることです。

次のシナリオで何が起こるか:

私はsuperFramework.swfとsubapp.swfを持っています。subapp.swfは、SWFLoaderを使用してsuperframework.swf内にオンデマンドで表示およびロードされます。ただし、両方のSWFには、RSLとしてコンパイルされるcommon.swcへの依存関係があります。

したがって、依存関係は次のようになります。

superframework.swf           ---RSL---> common.swc
   ---SWFLoader-->subapp.swf ---RSL---> common.swc

今私の質問:

  • subapp.swfは別のメモリスペースにロードされていますか?
  • はいの場合:これは、common.swc RSLがメモリに2回ロードされることを意味しますか?
  • いいえの場合:common.swcのModelLocatorのようなシングルトンはどうですか。subapp.swfとsuperframework.swfで同時に同じインスタンスを使用できますか?
4

1 に答える 1

3

RSL は真の動的ライブラリではありません。それらは、実行時にライブラリ全体を静的にリンクすることに似ています。

  • subapp.swf は別のメモリ空間にロードされていますか?

はい、そうです。すべての SWF は Flash Player で実行されます。セキュリティ上の理由から、独自の小さなサンドボックスがあります。

  • はいの場合: これは、common.swc RSL がメモリに 2 回読み込まれることを意味しますか?

はい、各呼び出しアプリケーションは、指定された RSL のコピーを 1 つロードします。

  • いいえの場合: common.swc の ModelLocator のようなシングルトンについてはどうですか。同じインスタンスを subapp.swf と superframework.swf で同時に使用できますか?

いいえ、インスタンスが異なります。

RSL は、配布可能ファイルのサイズを縮小するのに役立ちます。しかし、これは常に利点があるとは限りません。飛躍する前に、このページを読むことをお勧めします。

于 2009-03-13T18:23:20.233 に答える