2011-07-20 51 views
0

就我的理解而言,模块可用于将应用程序拆分为不同的部分。Flex模块的含义

一个很大的优势似乎是能够在应用程序启动后加载模块,以获得更好的启动性能。

我个人希望模块使我能够为模块代码拥有自己的代码沙箱。因此主应用程序代码和模块代码都不应相互影响。但是例如模块的CSS样式会影响主申请签证版本。

我的问题: 1.什么可以使用模块旁边运行时加载? 2.是否有在自己的沙箱中运行代码的选项?例如通过加载swf资产?

+0

你的意思是“什么是Flex模块的点”? – Taurayi

+0

就是这样。除运行时加载外,Flex模块有什么意义? – Dukeatcoding

+0

[Flex:MXML“组件”和MXML“模块”之间的区别是什么?](http://stackoverflow.com/questions/1008245/flex-whats-the-difference-between-an-mxml -component-and-an-mxml-module) – splash

回答

4
  1. 什么可以使用模块旁边运行时加载?

您可以将您的应用程序分为不同的部分 - 例如,你可能只需要更新应用程序,而不是整个应用程序的购物车部。这可以让你做到这一点,而不需要再次部署整个应用程序。这强制抽象并且意味着更少的回归测试/错误。

另一个好处是保护swf文件本身。我写过后端应用程序,用户可能能够访问订单屏幕,但不能访问用户管理屏幕。因为每个模块都是一个模块,所以客户端甚至没有机会看到(或反编译)用户管理swf代码 - 因为我可以在用户的​​会话服务器端尝试加载模块时验证它。这是一个额外的保护层。

内存管理 - 它不仅仅是加载应用程序,而是一次加载所有功能需要多少处理。如果用户只需要一个或两个屏幕,为什么要加载其他98个屏幕?

可移植性和代码重用。您可以在面向消费者的应用程序和后端工具中使用“订单查看器”模块。这些绝对不是同一个应用程序,但它们都需要订单查看器的基本功能。更好的是,完全不同的应用程序可以使用相同的功能。

  1. 是否有选项,以在自己的沙盒中运行的代码?例如通过 加载瑞士法郎资产?

有特殊注意事项模块之间的通信,这是给你一个良好的阅读:

http://livedocs.adobe.com/flex/3/html/help.html?content=modular_2.html

+0

对于沙箱,我想补充一点,ModuleLoader的'applicationDomain'属性就是这样。 –

+0

Thx 4你的答案Nate扩展了我对使用模块的看法。 Jax thx为应用程序域,我完全没有意识到它。也许这就解决了我的问题 – Dukeatcoding

1

您可以通过创建一个新的SystemManager允许模块,其风格分别处理为其flexModuleFactory,您可以将其加载到一个单独的applicationDomain出于安全目的。

对于您提出的问题并非真正的答案,但它解决了您遇到的潜在问题。

我在上一份工作中使用了模块,允许我们随时开发和添加新的功能 - 模块的路径将存储在数据库中并在运行时加载。

HTH;

艾米

+0

模块存储在数据库中的好主意,我认为applicationDomain真的是我迄今为止忘记的那个方面 – Dukeatcoding