使用 Flash Player 高速缓冲,提高Flex应用程序性能
大家在用的应用程序时的时候都知道,第一印象很重要。第一件事情是下载,如果这个过程时间过长,它会造成非常不友好的用户体验。为了改善这种体验,你需要学习的策略,以减少下载时间和改善你的Flex应用程序的启动时间。
本文将告诉您如何采取新的Adobe Flash Player,使用Adobe Flex3的高速缓存的优势。我们来看看使用这种方法在Flex Builder和Flex SDK的命令行工具的运用。
- 使用Flash Player缓存
Flash Player缓存是Flash Player 9更新的一个新功能。缓存允许由Adobe签署的文件,由Flash Player缓存。这些文件的文件扩展名为.swz。
Flash Player缓存不同于浏览器缓存中的一些常用的方法。由于缓存的swz文件是由Adobe签署的,他们可以重复使用多个域,并不仅限于他们起源域内重用。例如,想象一下,framework.swz是从http://www.a.com加载的,但是存放在Flash Player缓存。如果需要从http://www.b.com下载相同的framework.swz文件时,Flash Player会在其缓存中找到a.com的framework.swz文件。当它找到一个匹配时,它会使用缓存的文件,而不是从b.com加载一个新的文件。
即使在关闭浏览器的缓存情况下,swz文件也会一直存在。文件无限期的缓存,由于swz的提供者不可能直接更改终端用户Flash Player的管理设置,以减少它们的高速缓存能力。这样对于老化的swz文件越来越多,最后可能也就超过高速缓存的文件大小限制。
幸运的是,你同一版本的只需要下载一次,因为Flash Player使用一个共同的缓存系统上的所有浏览器。这意味着,如果用户使用IE下载swz文件,同样的swz文件也可以用在Mozilla Firefox。
Flex 3是第一个采用Flash Player缓存技术的。在Flex 3框架的代码已回滚到Runtime Shared Libraries(RSL的)。 RSL支持SWZ文件在运行时加载,而不是静态链接到应用程序加载的SWF文件。正因为如此,应用程序的文件大小也将更小。
开发者也可以使用未签名的RSL,他们都是依赖与浏览器的缓存,当然,它们可以防止同样的RSL被多次下载。
用户机器上经过签署的Flex- RSL的应用程序的缓存,它们都可用于所有其他应用程序中,用于加载应用程序的原始域。 Flex应用程序开始使用签署的RSL,通过Flash Player缓存加载的RSL,他们都将能够受益于在降低带宽成本和更快的Flex应用程序的启动时间。
- 了解RSL的基础知识
要创建Flex 3的RSL文件,你需要知道以下三点:
- swc的文件路径名
- RSL的URL地址
- 跨域策略文件的URL地址
- 使用Flex Builder中的RSL
为了减少下载时间,Flex Builder默认是添加调试信息的,我们可以在如下图所示右键项目,选择项目属性选项,在该设置页面添加-debug=false参数,关闭调试信息。