`
gzg844cz
  • 浏览: 42587 次
社区版块
存档分类
最新评论

解决Flex4 发布后访问 初始化极其缓慢的问题

 
阅读更多

解决Flex4 发布后访问 初始化极其缓慢的问题
2011年08月14日
  昨天找了个免费.net空间,想测试一下做的一个简单Flex4 上传项目的效果。上传所有文件到网站之后,访问项目页面,进度条一点一点艰难的向前移动,到了100%后却不出现程序界面,等待一会儿还是没有出现,于是我去做了别的事情,N分钟之后再来看的时候界面才终于出来了。程序倒是没有问题,可以上传文件。但是这慢到令人发指的初始化加载速度却令人吃惊,很难想象如果用户需要等待这么长时间才能成功访问一个页面是多么可怕的事情。
  在网上搜索发现也有朋友遇到了类似的问题,就是初始化太慢。有人评论说Flex4 不如3,还有说退回到flash吧。。我于是就怀疑flex4 是不是真的就是这么个速度。。当然,后来经过不断探索,发现Flex4也是可以很快的(不然谁还用flex4)。
  今天早上先上传了个Flex3项目,测试一下速度,果然很快。。几秒钟就加载完毕了。而之前的Flex4 却依然缓慢。我突然想到去找找网上的Flex4 站,看看他们的速度怎么样,结果鼓舞人心,速度很快也是几秒钟的事er。那不可怀疑的,说明我们的程序(编译)还是有问题。
  搜索找到了一篇文章关于FLex 4 framework 框架加载的感受(http://docs.iteye.com/blog/521568 )然后又找到了Adobe的论坛So long time to download flex4 framework!!!(http://forums.adobe.com/message/2428795#2428795)弄明白了原因和解决方案。之所以加载缓慢是因为在Flash builder默认使用了RSL(运行时共享链接),Flex4为了加快加载速度使用了RSL,即把可以共享的框架、类库单独生成文件,并在请求时缓存到Flash cache中,这样只要是同域的Flex项目就都可以使用而不必重新加载从而加快了加载时间。而问题也恰恰处在这个默认设置上,这些共享文件的优先位置是从Adobe的服务端上下载,正是这个请求下载过程造成了加载奇慢。解决的办法就是将这些文件的位置优先指向自己的服务器(本地),Flash builder的Release 发布也可以生成这些文件,只要将这些.swz文件上传至服务器即可。
  如何设置RSL路径。网上找了半天,大多数是flex-config.xml,但这个是Flex3的,Flex4 默认是不使用这个文件了。在Adobe的帮助文档上找到了Customize the deployment location of the framework RSLs(http://help.adobe.com/en_US/flex/using/WS2db454920 e96a9e51e63e3d11c0bf69084-7add.html)设置方法如图,打开项目--属性--flex构建路径--库路径标签,点开Flex4.1 选择framework.swc的链接类型--编辑--弹出库路径选项框。
  可以看到默认的adobe的server路径在第一个,第二个是本地路径(要求与swf在同目录),将第二个调到第一位置(图中已调整)。当然也可以自定义路径,可以是相对的或绝对地址。点击确定保存设置。
  这样依次设置
  framework_4.0.0.14159.swz
  osmf_flex.4.0.0.13495.swz 
  rpc_4.0.0.14159.swz 
  spark_4.0.0.14159.swz 
  sparkskins_4.0.0.14159.swz 
  textLayout_1.0.0.595.swz 
  (这篇文章也很有用http://devgirl.org/2010/04/08/framework-rsls-in-fl ex-builder-vs-flash-builder-performance-and-importa nt-info/)
  最后点击项目--导出发行版,在bin-releas下可以看到生成的.swz文件,第一次要把所有的文件上传到网站,以后只要是同域的其他Flex项目指定好RSL路径,就不必再上传.swz文件了,这样大大减小了swf文件的大小,加快了加载速度。
  到此解决了开始的问题,同时使得RSL的优点也得到体现。
分享到:
评论

相关推荐

    关于Flex 初始化的research

    4. **APPLICATION_COMPLETE**:整个应用程序加载完成后触发,包括所有组件的创建和初始化。 在给定的代码示例中,我们看到`CustomPanel`监听了这些事件,并在每个事件处理函数中打印出相应的信息。`o`对象是在`...

    Flex启动与初始化

    Flex应用程序在发布时会生成一个特殊的SWF文件,其内部结构对于理解应用程序如何加载和初始化至关重要。该SWF文件具有以下特点: 1. **双帧结构**:Flex生成的SWF文件是一个两帧的MovieClip。这种设计的主要目的是...

    flex 4 生命周期

    接着,`creationComplete`事件标志着组件的所有子组件都已创建并初始化完成,此时可以访问和操作组件树。 布局阶段在Flex 4中得到了强化,引入了LayoutManager和LayoutClasses,使得布局管理更加灵活和可定制。`...

    flex4原生扩展应用(Android)

    7. 定位服务集成:在Flex4应用中实现定位功能,需要处理定位请求的初始化、监听位置更新、处理定位权限问题等。开发者可以创建一个自定义ANE来封装这些操作,使得在Flex层的调用变得更加简单。 通过"说明.txt"文件...

    Flex编译错误码总结

    检查拼写是否正确,或者是否已经声明并初始化了该属性。 6. Error 1180: Call to a possibly undefined method methodName 当调用一个可能未定义的方法时,会抛出此错误。确保该方法存在于对象的类定义中,或者对象...

    flex全书籍 flex全书籍

    7. **Flex应用生命周期**:从初始化、布局计算、绘制到事件处理,理解Flex应用的生命周期对于优化性能和解决运行时问题至关重要。 8. **Flex图表和可视化**:Flex SDK提供了丰富的图表组件,可以创建各种统计图表和...

    flex

    4. **Flex Component Lifecycle** - 组件的创建、初始化、显示和销毁的过程,理解这个生命周期对于优化性能和处理事件至关重要。 5. **Data Binding** - Flex支持数据绑定,可以自动同步UI组件和模型数据。 6. **...

    FLEX 系统管理器 SystemManager

    此外,Flex的SWF文件仅包含两个帧,第一帧处理加载和初始化,第二帧包含实际的应用代码和资源。 6. **加载进度监控**: 在SWF文件下载过程中,SystemManager负责创建Preloader和DownloadProgressBar,这两个组件...

    FLEX3教程(适合初学者)

    8. **Flex应用程序生命周期**:理解Flex组件的创建、初始化和销毁过程对于优化性能和管理资源非常重要。 9. **调试和测试**:学习如何使用Flash Builder的内置调试工具,如断点、变量查看器和性能分析器,可以帮助...

    Flex4.6手机项目预载外部sqlite数据库

    4. **初始化数据库连接**:复制完成后,应用程序需要建立到新数据库的连接,并可能执行一些初始化操作,如创建表、触发器或视图,以及插入默认数据。 5. **错误处理**:在整个过程中,应捕获并处理可能出现的任何...

    flex3

    8. **组件生命周期**: Flex组件有自己的生命周期,包括创建、初始化、显示、隐藏和销毁等阶段。理解这个生命周期对于优化性能和解决问题至关重要。 9. **BlazeDS**: BlazeDS是Flex与Java服务器之间通信的中间件,...

    Flex java blazeds 开中 遇到的问题大全

    解决办法是在数据绑定到渲染器之后,而不是在初始化时加载图片,这可以通过覆盖`set data()`方法并在其中处理图片加载来实现。 在Flex与Java BlazDS集成的过程中,了解并掌握这些常见问题的解决方案可以帮助开发者...

    Flex3开发实践_案例素材及源码

    从初始化到销毁,Flex组件有自己的生命周期,理解这个过程有助于优化性能和资源管理。 8. **Flex图形和动画**: Flex支持矢量图形和动画,开发者可以通过DisplayObject容器和Timeline控制实现复杂的视觉效果。 9...

    Flex3组件和框架的生命周期

    初始化阶段发生在组件被添加到显示列表后,并且其尺寸已确定的情况下。该阶段主要工作是执行组件内部的初始化逻辑,例如设置初始状态、注册事件监听器等。此时组件已经具备了完全的功能。 **组件的失效机制阶段** ...

    flex_array.rar_flex

    1. **初始化函数**:通常会有一个初始化函数用于创建一个新的Flex Array,它会根据初始大小分配第一个块,并设置相关的管理信息。 2. **增长策略**:为了支持动态增长,文件中应该包含一个增长数组容量的函数。该...

    LoadXML.rar_flex

    "LoadXML.rar_flex"这个压缩包文件很可能包含了一个Flex项目,该项目着重于如何加载XML文件并从中提取数据,以便进行程序初始化。以下是关于Flex加载XML及初始化程序的相关知识点。 1. **Flex与XML的结合**: Flex...

    MapGIS IGServer Flex 问题集锦

    MapGIS IGServer Flex问题集锦详细知识点整理: 一、开发入门篇 1. 配置Flex开发环境 在进行基于Flex的二次开发时,首先需要配置Flex开发环境。具体步骤包括安装FlexBuilder3集成开发环境以及两个FlashPlayer插件。...

    flex拍照案例,java后台保存照片

    - 调用 `initCamera()` 初始化摄像头。 - **摄像头初始化** (`initCamera()`): - 获取系统摄像头实例 `m_camera`。 - 设置摄像头的分辨率和帧率。 - 创建 `Video` 对象 `m_localVideo` 并与摄像头绑定。 - 将 ...

    flex3cookbookzhcn_airia

    从初始化、布局计算到渲染,Flex应用程序有一套完整的生命周期管理,理解这个过程对于优化性能和解决布局问题至关重要。 八、图形和动画 Flex支持创建复杂的矢量图形和动画效果,通过DisplayObject类和...

Global site tag (gtag.js) - Google Analytics