Apache flex 火焰速度慢,物体多

Apache flex 火焰速度慢,物体多,apache-flex,air,blazeds,amf,Apache Flex,Air,Blazeds,Amf,我正在使用Flex开发一个移动应用程序,在使用BlazeDS时遇到了一些问题。一些用户从我的服务器请求(相对)相当大的数据量,大约2秒钟后返回。数据由一些非常简单的对象组成(客户机,它有一个名称/电话/电子邮件,以及一些其他属性,其中一些是具有更多属性的其他嵌套对象)。最大的请求由不超过10000个这样的对象组成,这些对象的大小只有几MB。我遇到的问题是,只要服务器发送响应,移动屏幕就会在处理数据时锁定。对于10000个对象,这可能需要几分钟的时间,有时甚至会使设备崩溃,充其量只能让用户在整个过

我正在使用Flex开发一个移动应用程序,在使用BlazeDS时遇到了一些问题。一些用户从我的服务器请求(相对)相当大的数据量,大约2秒钟后返回。数据由一些非常简单的对象组成(客户机,它有一个名称/电话/电子邮件,以及一些其他属性,其中一些是具有更多属性的其他嵌套对象)。最大的请求由不超过10000个这样的对象组成,这些对象的大小只有几MB。我遇到的问题是,只要服务器发送响应,移动屏幕就会在处理数据时锁定。对于10000个对象,这可能需要几分钟的时间,有时甚至会使设备崩溃,充其量只能让用户在整个过程中保持一个冻结的屏幕。对于普通用户来说,冻结屏幕的时间至少为2-5秒。这不仅仅是功能有限的设备的问题。这也发生在我的电脑上(i5处理器,8GB内存)。据我所知,这种停机时间发生在设备收到响应和我可以访问数据之间的某个时间。在以下RemoteObject结果处理程序的第一行上设置断点会在到达断点之前锁定屏幕:

protected function myResultHandler(event:ResultEvent):void
{
    var result:ArrayCollection = event.result as ArrayCollection;
    //Do other stuff here
}

我对BlazeDS和AMF知之甚少,所以我唯一的猜测是冻结是在设备上创建对象时发生的。有没有办法加快这一进程?我通常应该看到这样糟糕的表现吗?任何帮助都将不胜感激。

经过几个小时的深入研究,我找到了问题的解决方案:在服务器端,我发送的对象有大量与我在移动应用程序上需要的信息无关的无关属性。此外,这些类上的helper方法的形式为
getMyHelper()
,它将尝试在Flex端生成一个属性。这导致下载过程中抛出大量引用错误,因为AS对象中不存在具有这些名称的属性。我创建了我需要发送的对象的精简版“lite”,没有额外的属性或方法。现在,在收到服务器的响应后,大量列表几乎立即显示

我假设并不是所有的数据都在移动屏幕上同时显示。您是否尝试过使用数据分页?这些设备有什么类型的连接?几MB大约相当于一个小mp3的大小。您的“2秒”数字是服务器端处理时间还是完全返回数据的时间?是的,一次显示所有数据。这是因为用户需要能够从列表中选择多个项目或单击“全选”。从数据库加载时,渲染只需一两秒钟。另外,连接不是问题,因为在50 MB/s光纤连接上仍然存在问题。2秒延迟是服务器处理请求和返回响应所需的时间(包括接收时间)。