首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex模块对RSL

Flex模块对RSL
EN

Stack Overflow用户
提问于 2010-06-09 09:20:36
回答 2查看 1.6K关注 0票数 3

我有点不明白什么时候使用、Flex模块、RSL语言(在Flex3.5中)更好。

我的目标是将我的项目分成几个单元项目,这样我就可以分别测试和工作。假设我有客户应用程序和供应商应用程序。我还有一个带有两个按钮的前端面板。每个按钮启动客户应用程序或供应商应用程序。

这些应用程序产生了不同的东西。它们还共享一些.as函数和公共组件。

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

与其做模块,我应该为供应商创建SWC,为客户创建其他应用程序,并使用RSL从主应用程序调用?

那么,哪种选择更合适呢?你给我什么建议?每种选择的利弊是什么?

另一方面,这个flex应用程序是通过Blaze和is与Java集成的,用于持久化管理,并由web apache服务器保存。我还考虑过创建独立的war文件来保留这个附件,但我认为这并不能优化flex代码。我是对的?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2011-01-20 16:13:44

模块和RSL的用途不同。

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

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

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

模块按需加载,通常包含视图。模块的主要目的是推迟加载视图,直到需要。这加快了应用程序的初始加载速度,如果用户真的想查看该视图,则只需加载该视图即可。

与仅仅加载SWF相比,模块有很大的开销,但是您需要使用模块来保证Flex的所有特性都能像预期的那样工作。

模块和RSL都可以被优化以删除已经包含在特定应用程序中的代码。不过,这对于Modules来说更有意义,因为它将使RSL只在单个应用程序中使用,从而大大地击败了RSL的主要用例。

票数 3
EN

Stack Overflow用户

发布于 2010-06-11 15:13:31

模块提供更细粒度的控制,以控制内容何时加载--以及可选择地--卸载。

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

使用Modules,您可以将加载推迟到用户请求的时间。

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

为客户和供应商应用程序分别声明一个模块,并只在单击按钮时加载适当的模块。这样就避免了冗余模块的下载成本。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3004508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档