首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BlazeDS在处理大量对象时速度较慢

BlazeDS在处理大量对象时速度较慢
EN

Stack Overflow用户
提问于 2013-01-23 04:23:10
回答 1查看 715关注 0票数 0

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

代码语言:javascript
复制
protected function myResultHandler(event:ResultEvent):void
{
    var result:ArrayCollection = event.result as ArrayCollection;
    //Do other stuff here
}

我对BlazeDS和AMF知之甚少,所以我唯一的猜测是冻结是在设备上创建对象时发生的。有没有办法加速这个过程呢?正常情况下,我是否应该期望看到这样糟糕的性能?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-24 02:25:56

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

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

https://stackoverflow.com/questions/14467340

复制
相关文章

相似问题

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