【问题标题】:Flex project architecture?弹性项目架构?
【发布时间】:2011-02-09 16:07:03
【问题描述】:
在弹性项目中组织功能模块的最佳方式是什么?我看到有人把所有模块放在一个视图堆栈中,所以应用程序界面只加载一次,但是当应用程序变大时,整个编译的 swf 会很大。如果我们将swfs放在不同的页面中,我们通过HTTP请求传递请求参数,我们失去了flex RPC服务的好处,加载缓慢,我们看不到任何与php,asp,jsp相比的优势......最佳实践是什么组织前端架构?
【问题讨论】:
标签:
apache-flex
flash
actionscript-3
【解决方案1】:
不久前,我共同创建了一个名为 Anvil 的大型 Flex 应用程序框架。这个项目已经死了,但我们在 Anvil 中使用的架构模式仍然适用于大型应用程序。你可以阅读更多关于 Anvil 架构的信息here。您可能还想查看UcompOS。
【解决方案2】:
这是一个棘手的问题,取决于您的应用程序。我已经为此苦苦挣扎了很长一段时间,所以我也有兴趣了解其他方法。
在架构方面,我通常创建一个“框架”应用程序,负责加载模块并通常还显示它们。此框架通常还处理身份验证等问题。无论是视图堆栈还是不同的解决方案都不是那么重要。但是您通常不希望将所有内容打包到一个巨大的 SWF 中,因为 Flash 播放器需要在实际显示任何内容之前加载整个内容。
在构建应用程序时通常会出现的一个相关问题是如何在生成的应用程序中处理“导航”。我通常最终构建某种导航事件,部分由框架(加载模块)和/或实际模块处理。但同样,这只是我的理解,我很想听到其他方法。
【解决方案3】:
模块按需加载。所以父 swf 的大小不应该取决于模块的数量。然而,加载模块时使用的内存大小会增加 - 如果这是一个问题,您可以尝试卸载它们(这不是一件容易的事,但您可以做到)。所以我会保留视图堆栈的方法。