在学习Flex的过程中,你可能会遇到Flex性能优化问题,这里和大家分享一下Flex性能优化的基本原则,随着Flex越来越多的被人们所熟知,越来越多的互联网也开始了RIA应用。
Flex性能优化常用手法总结
众所周知,目前国内的宽带应用并不是像很多发达国家发达,个人应用带宽基本上都是2M以下的,怎么样能够使你的Flex应用能够流畅的运行在客户端的问题,成为了制约每个Flex应用开发程序员的大难题。在这里,我收集整理了一下网络上关于这方面经验,欢迎大家补充。
Flex性能优化基本原则:
1.从外部加载媒体(Media)
Heider提到了一个常用的Flex***实践——限制嵌入到应用/SWF文件中的媒体的数量,如图像、影片及mp3等资源都可以从外部的SWF文件加载。
Flex框架可以直接将图片、mp3及字体等资源编译到SWF中。当你想让最终用户获得全部资源时,这种方式确实能派上用场,但是这会导致你的应用长时间停留在“Loading”阶段。
2.在嵌入式字体中限制字符集
Heider建议在嵌入式字体中限制字符集以降低SWF文件的总下载时间:
当你在Flex中嵌入一种字体时,你就会获得该字体的全部字符的支持。尽管这可能是你想要的,但你确信你需要全部字符么?例如,在一个只面向英文的应用中,你确信你真的想花时间下载中文字符数据么?
3.缓存框架
Heider回顾了Flex3supportforruntime-shared-libraries(RSL)这篇文章:
从Flex3开始,你可以将Adobe签名的框架——RSLs缓存到FlashPlayer的cache中。这有两个好处。首先,缓存在FlashPlayercache中的签名的框架RSLs可由所有配置好的Flex应用共享。换句话说,如果某人的应用已经下载了500k的签名的框架RSL,并且该RSL仍旧在FlashPlayercache中,那么你的应用就可以使用缓存下来的RSL。其次,即使某人清空了其浏览器缓存,对FlashPlayercache也没有任何影响。
4.考虑模块化
Heider谈到了将Flex应用划分成模块的好处:减少字体加载时间的另一种方式就是将你的Flex应用划分成模块。使用模块的一个好处在于当加载和卸载模块时你能完全操控它。
之所以要划分成模块的***一个原因是他们更快,而且我能即时加载它们。换句话说,在启动时唯一需要加载的模块就是Step1.swf模块。因此,在使用模块的情况下,最终用户节省了启动时间,但是当他从一个模块切换到另一个模块时却需要花更多时间,因为每个模块都需要以JIT形式加载。在我的应用中,只有当用户***在steps1-5之间切换时需要花更多时间。
5.推迟实例化
Heider围绕着Flex组件的“creationPolicy”属性及何时实例化应用的不同部分给出了很多建议。
Flex性能优化时如果你想减少从数据下载到用户真正可以使用的总时间,当务之急就是推迟实例化。这项技术背后的理念就是直到应用真正使用的时候才在内存中创建对象。
尽管推迟实例化技术会在应用的整个使用过程中导致少许——通常不那么明显——的延迟,但与长时间的启动延迟相比,它还是可接受的。推迟实例化的另一个好处在于内存使用的优化。
以上原则来自JunHeider在O'Reilly的InsideRIA站点上发表了一篇精彩的文章,该文章就如何加快Flex应用的启动速度提出了很多建议,以帮助用户减少看见讨厌的“Loading”对话框的出现时间。他深入探讨了问题的不同方面,并对每种技术的优势和劣势进行了评判。Heider还谈到了一个“实验性”的条款——“使用流”,这是他在讨论DirkEismann的帖子(BuildingmonolithicFlexSWFsthatstillstartupquickly.”)时谈及的。Eismann提出一项技术以利用FlashPlayer中的多个frames以在部分应用中达到流的目的。查看所有的帖子以更多地了解该技术及关于加快Flex启动速度的建议。
分享文章:Flex性能优化的五大基本原则
URL分享:http://www.shufengxianlan.com/qtweb/news45/461645.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联