1

我已经在使用 blazeDataservice 连接到后端的 flex (cairgorn)+spring+blazeDataservice 应用程序中工作了几年,现在它变得有点大并且需要太多时间太负载,使用它的人通常需要它定期使用它。

我的国家的互联网带宽并没有变得更好,实际上它变得更糟了,所以应用程序变得更大,带宽变得更糟,所以加载它的速度一天比一天慢。

我想知道如何将客户端安装在人们的计算机上,我将把一个 flex 在线应用程序变成一个桌面应用程序而不重写它。我只需要有人指出我正确的方向,我在考虑两个选项:

1.- 可以变成土坯空气吗?不是 adobe air 桌面吗?

2.- 也许是在人们桌面上运行的闪存?

我需要一切都可以像今天一样对抗主机 spring 后端

非常感谢你!

4

2 回答 2

3

只是要清楚:

如果它是应用程序 (SWF) 本身的大小,而不是正在执行的查询,那么在不构建桌面 (AIR) 版本的情况下,另一种加快速度的替代方法是使用 Flex 所称的模块。

基本上,您会将您的应用程序分解为仅在必要时加载的较小部分。

如果您确实采用桌面 (AIR) 路线,您可能还想探索仅在需要时与您的服务器同步的本地 SQLite 数据库,从而进一步减少 Internet 连接问题。

这当然会增加您的开发时间,但考虑到您描述的情况,这似乎是一个不错的选择。

至于从哪里开始,从 Web 切换到桌面 (AIR) 应用程序就像将主 MXML 标记从(在 Flex 3 中)mx:Application 更改为 mx:WindowedApplication 并启动您的应用程序一样简单。

更新以回应后续问题:

很难说在不知道您的代码当前结构的情况下会涉及多少重写,但怀疑这将是一次重大的重写。

作为一个实验,我建议如下:

  1. 创建一个新的 Flex 应用程序。
  2. 创建一个新模块。
  3. 向模块中添加一些简单的 MXML 和 Actionscript。
  4. 将模块的一个实例添加到您的主视图。
  5. 运行/编译。

您应该看到的是,从功能或编码的角度来看,您可能根本没有将它包装在模块中,但是模块将被编译为单独的 SWF,Flex 将根据需要处理加载它。

如果一切正常且有意义,我将开始将您的代码片段分解为模块,看看是否开始解决您的问题。

于 2011-06-14T14:24:20.127 回答
2

Adobe AIR 是正确的方法。它本质上是#2,通常你几乎可以直接将你拥有的东西直接发布到 AIR 而不是网络上,而且它就可以正常工作。想要!

于 2011-06-14T14:06:06.760 回答