繁体   English   中英

Flex模块与RSL

[英]Flex Modules vs RSL

关于何时更好地使用Flex模块RSL库 (我在Flex 3.5中),我有点困惑。

我的目标是将我的项目拆分为多个单元项目,因此我可以单独测试和工作。 我们假设我有一个客户应用程序和供应商应用程序。 我还有一个带两个按钮的前端面板。 每个按钮都会启动客户应用或供应商应用。

这些应用程序有不同的东西 它们也共享一些.as功能和通用组件。

据我所知,如果我创建一个主项目(用于用户登录并显示第一个面板)和两个模块(客户,供应商),我必须在Eclipse项目中拥有所有这些组件,不是吗?

我是应该为供应商创建SWC而不是为客户应用创建SWC而使用RSL从主应用程序调用?

那么,哪个选项更合适? 你有什么建议我的? 哪个是每种选择的权衡取舍?

另一方面,这个flex应用程序通过Blaze和ibatis与Java集成,用于持久管理,并由Web apache服务器保存。 我还考虑创建独立的war文件以保持这种独立性,但我认为这不会优化flex代码。 我是正确的?

谢谢。

模块和RSL用于不同的目的。

RSL可以包含代码和资产,并在主swf加载时加载到内存中,就好像它们是同一文件的一部分一样。

RSL的主要目的是拆分可能在多个应用程序中使用的代码或资产 ,以便Web浏览器可以缓存它并仅加载一次。 RSL不需要Flex框架,可以在任何Flash / ActionScript项目中使用。 您无法控制RSL的加载方式,也无法卸载它。

模块本质上是一个外部SWF,可以按需加载,添加了大量特定于Flex的代码,以确保Flex功能按预期工作。 例如,如果处理不正确,样式继承和嵌入字体在加载的SWF中可能会出现问题。 Flex UI组件具有特定的逻辑,以确保这些东西与模块正常工作。 模块还处理跨域问题(例如,当鼠标位于来自另一个域的SWF上时,您通常无法接收鼠标事件,但模块可以解决此问题)。

模块按需加载, 通常包含视图。 模块的主要目的是推迟加载视图,直到需要它为止 这加速了应用程序的初始加载,并且用户只需要加载该视图,如果他真的想要查看它。

与仅加载SWF相比,模块具有显着的开销,但您需要使用模块来保证Flex的所有功能都按预期工作。

可以优化模块和RSL,以删除已包含在特定应用程序中的代码。 这对于模块来说更有意义,因为它通常使得它只能用于单个应用程序,从而使RSL的主要用例失败。

模块提供了更精细的控制内容加载时 - 并且可选 - 卸载。

假设用户没有在本地缓存RSL,那么它将作为应用程序初始加载的一部分加载。

使用模块,您可以推迟该负载,直到用户请求它为止。

在您的实例中,听起来您想要使用两者的组合。

为Customer和Vendor应用程序声明每个模块,并仅在单击按钮时加载相应的模块。 这样可以避免产生冗余模块的下载成本。

它们之间共享的通用逻辑可以进入RSL,它将缓存在客户端,并且只下载一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM