最近项目中遇到一个问题,有一个flex页面返回数据时间过长>30s,起初在后台方法上找原因,无效。后来跟踪了每个后台方法的执行时间,发现flex页面同一时刻调用的多个方法是串行执行的,一个方法要等到前一个方法执行完毕才开始执行,所有方法执行完毕,一起返回。这样时间就等于每个方法执行时间之和了。显然与期望的并发执行不符合。
查了下,有说是因为“IE中HTTP 1.1配置的问题。IE中对HTTP1.1 Server默认最大只有两个connection。一个connection用于其它用途,而用于Flex channel的就只有一个,在执行Remote方法时会独占connection,所以如果只有一个connection,Remote方法就只能串行执行了。”检查了自己的IE链接,最大链接是10,显然不是这个原因。
后来尝试把几个方法错时调用,首先调用执行时间最长的方法,然后延迟800毫秒,调用下一个发法,执行时间最短的方法最后调用,奇迹出现了,所有的方法开始并发执行,并且不再同时返回,而是执行完一个返回一个,页面加载数据的总时间等于执行时间最长的那个方法的时间。问题解决。
之前写法:
private function initData():void{
method1();
method2();
....
}
修改后:
private function initData():void{
method1();
setTimeout(method2,800);//延迟800毫秒后执行
....
}
[参考]:http://lujinan858.iteye.com/blog/649614
http://blog.csdn.net/yangyawen/article/details/7378194
分享到:
相关推荐
在调试和优化Flex应用时,理解这些方法调用的顺序能够帮助我们定位问题并提升性能。例如,如果你发现某个属性没有正确更新,可能是因为它在错误的阶段被设置,或者没有调用`validateNow()`方法来立即刷新组件状态。 ...
在Java工程的`remoting-config.xml`配置文件中,定义一个目的地(Destination),指定`HelloWorld`类为源,这样Flex客户端可以通过这个目的地调用`HelloWorld`类的方法。 5. **BlazeDS的通道配置**: 在`services...
在Flex编程领域,ObjectHandles是一个非常实用的组件,尤其对于新手开发者来说,它提供了一种简单易用的方式来实现拖拽和伸缩功能。这个组件能够帮助用户交互地调整对象的位置和大小,使得UI设计变得更加灵活和动态...
标题中的“flex调用java方法”指的是在Adobe Flex(一种基于ActionScript的开源框架,用于构建富互联网应用程序)中调用后端Java服务的技术。在描述中提到了使用Blazeds作为中间件来实现这种交互,Blazeds是一个开放...
Flex Air调用C代码是跨平台开发中的一个重要技术,它允许使用ActionScript 3的Flex应用程序与本地系统资源进行交互,比如C/C++编写的动态链接库(DLLs)或共享对象(SOs)。这个技术主要依赖于Adobe AIR的Native ...
远程对象调用允许Flex客户端直接调用服务器端的方法,如同本地方法调用一样,极大地简化了客户端与服务器端的通信。 Flex和Spring的集成则是将Spring框架的强大的依赖注入和管理功能引入到Flex应用程序中。Spring...
通过以上详细介绍,我们可以看到Flex Remote技术为Flex与Java之间的通信提供了一个强大而灵活的解决方案。它不仅简化了开发流程,还提高了系统的性能和稳定性。在实际项目开发中,开发者可以根据具体需求灵活运用...
实用flex日期控件,原创,适用开发人员使用datefeild控件去除不需要日期时适用
总结,Flex和AS3之间的互相调用是通过MXML组件的属性和方法、AS3类的实例化以及事件监听和派发来实现的。理解这种交互方式对于构建高效、可扩展的Flex应用至关重要。同时,使用如`FlexComponentKit_v4.mxp`这样的...
flex 与JS间的相互调用和参数传递,简单可运行实例
综上所述,Flex调用Web服务和Java程序涉及到多个技术层面,包括Web服务的调用方式、Flex与Java的集成、事件驱动编程以及错误处理等。理解并掌握这些知识点,将有助于构建高性能、交互性强的Flex应用。
9. **Error Handling**:在实际开发中,错误处理非常重要,包括处理摄像头或麦克风不可用、网络问题、权限问题等情况。 10. **Security Considerations**:由于涉及到用户的隐私,开发者必须遵守相关的安全规范,...
Flex4是Adobe Flex框架的一个版本,它主要使用ActionScript3编程语言,提供了一种强大的工具来构建富互联网应用程序(RIA)。在Flex4中,通过使用Flash Player或Adobe AIR运行时,我们可以实现对摄像头的访问和控制...
在Flex开发中,"flex-object-handles.zip_flex"这个压缩包可能包含了关于如何操作和交互Flex中的对象,特别是涉及到对象的移动、编译、放大和缩小功能的代码示例或教程。Flex是一种基于ActionScript和MXML的开源框架...
1. 创建AS3接口:在Flex项目中,我们定义一个ANE类,其中包含要调用的Dll方法的签名。这些方法通常会返回一个ANE接口对象,以便在Flex中使用。例如,我们可以创建一个名为`NativeDll`的类,声明如下方法: ```...
JavaScript调用Flex组件的方法则需要Flex组件提供一个可访问的接口。在Flex组件中,我们可以定义一个公共方法,并使用`ExternalInterface.addCallback`使其可以在JavaScript中调用: ```actionscript public ...
通过上述示例,我们可以看到Flex与JavaScript之间的相互调用并不复杂,但需要注意一些细节问题。这种相互调用的方式为开发者提供了极大的灵活性,可以将两种技术的优势结合起来,创造出更加丰富和强大的应用程序。
在本文中,我们将深入探讨如何使用Adobe Flex调用Web Service来开发一个天气预报服务。Flex是一种基于MXML和ActionScript的开源框架,用于构建富互联网应用程序(RIA)。它允许开发者创建交互性强、用户体验良好的...
本资源提供的"Flex调用Servlet连接数据库源码"是一个很好的学习实例,它涵盖了如何使用Adobe Flex作为前端展示层,通过HTTP服务与Java Servlet进行通信,进而实现对数据库的读写操作。现在我们将详细解析这个主题。 ...