2009-03-13 5 views
1

ces jours je lis beaucoup en ce qui concerne RSLs. Un inconvénient est que les RSL doivent être chargées en mémoire mais peuvent économiser un temps de chargement important.Consommation mémoire des applications flex imbriquées avec RSL à l'aide de SWFLoader?

Maintenant, ce qui se passe dans le scénario suivant:

J'ai un superFramework.swf et un subapp.swf. subapp.swf est affiché et chargé à la demande dans superframework.swf en utilisant le SWFLoader. Cependant, les deux fichiers SWF ont des dépendances avec common.swc, qui sera compilé en tant que RSL.

Ainsi, les dependcies ressemblent à ceci:

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

Maintenant, mes questions:

  • Est-ce le subapp.swf chargé dans un espace mémoire séparé?
  • Si oui: Cela signifie-t-il que le fichier RSL common.swc est chargé deux fois en mémoire?
  • Si non: Qu'en est-il des singletons comme un ModelLocator dans common.swc. La même instance est-elle disponible pour subapp.swf et superframework.swf en même temps?

Répondre

3

Les RSL ne sont pas de véritables bibliothèques dynamiques. Ils sont plus comme statique reliant la bibliothèque entière à l'exécution.

  • Est-ce le subapp.swf chargé dans un espace mémoire séparé?

Oui, en quelque sorte. Tous les fichiers SWF s'exécutent dans Flash Player. Ils ont leurs propres petits bacs à sable pour des raisons de sécurité.

  • Si oui: Est-ce que cela signifie que le RSL common.swc est chargé en mémoire deux fois?

Oui, chaque application se charge d'appeler une copie d'un RSL donné.

  • Si non: Qu'en est-singletons comme un ModelLocator dans le common.swc. La même instance est-elle disponible pour subapp.swf et superframework.swf en même temps?

Non, ils auront des instances différentes.

Les RSL aident à réduire la taille des distribuables. Mais ce n'est pas nécessairement un avantage toujours. Je vous suggère de passer par la page this avant de faire un saut.

+0

Merci pour votre réponse ... eh bien ... après un peu plus de lecture, je suppose que je ne veux pas utiliser le SWFLoader, mais plutôt utiliser le ModuleLoader avec Modules. Mon hypothèse est que dans ce cas, les RSL sont partagés. – Yaba

+0

Essayez-vous de charger des RSL via ModuleLoader? J'espère que j'ai mal compris. En tout cas, n'hésitez pas à jouer. – dirkgently

+0

Indirectement ... Je veux utiliser Module Loader au lieu du chargeur SWF pour charger des composants à la demande à partir d'un framework plus grand.Comme ces composants peuvent avoir des dépendances avec les RSL qui sont également requis et déjà chargés par le framework, mon hypothèse est que, en utilisant le module Loader, les fichiers déjà chargés ... – Yaba

Questions connexes