第二十二章.模块(Modules)和运行时共享库(RSLs)

  当开发富互联网应用程序时,最终文件的大小和下载时间是必须要考虑的。Flex Framework提供了多种选择把应用程序代码分散到多个SWF文件中,以提高用户体验。

  Runtime shared libraries (RSLs) 是可被下载并缓存到客户端的一些文件。当RSL被下载存留在客户端后,其他应用程序就可以访问缓存的RSL资源了。应用程序载入两种RSLs:未签名和签名的。未签名的RSLs,比如标准的和跨域的SWF文件,存储在浏览器缓存里。签名的RSLs,这是经过Adobe签名过的,扩展名为.swz,存储在Flash Player 缓存中。

  正如其名,RSL被称作动态链接库,在运行时被载入。静态链接库是SWC文件,通过编译器的library-path和include-libraries编译进应用程序。采用静态链接的应用程序SWF会产生比较大的文件以及更长的下载时间。使用RSLs的应用程序载入时间短且文件比较小,而且提高了内存使用效率,只是在开始需要花点时间下载RSLs。RSLs的强大体现在多个应用程序共享公共代码时,因为RSLs只需要被下载一次,多个应用程序动态链接到相同的RSL,访问其中已经缓存在客户端的资源。虽然RSLs的巨大优点是缓存到客户端,但是它并不考虑库中的哪些类被真正用到,就把整个RSL库都下载来。

  Modules和RSL类似,只不过提供了另外一个方法分离应用程序代码到不同的swf文件上以便减少下载时间和文件大小。使用Modules的好处是,它不像RSLs,主应用程序开始时不需马上下载modules。应用程序会根据需求载入和卸载modules。使用modules的开发进程中还有个好处:由于每个modules独立于其他应用程序modules,当需要改变一个modules时,你只需要重编译这个modules而不是整个应用程序。

  你可以使用ActionScript和MXML创建模块化应用程序。基于Flex的模块使用<mx:Module>根标签,而基于ActionScript的模块需扩展自mx.modules.Module或mx.modules.ModuleBase。

 Module类类似于Applications。使用MXML编译器工具(mxmlc)编译模块,生成可被动态载入和卸载的SWF 文件, 你可以通过<mx:ModuleLoader> 和mx.modules.ModuleLoader 和mx.modules.ModuleManager类管理载入和卸载的模块。

  创建模块化应用程序是提高Flex框架性能的重要方面,提供更多能力控制下载时间和文件大小,使用RSLs和modules,你可以根据哪些可被独立载入,哪些可被其他程序使用而分离应用程序代码,两项技术各有优点,这一章将介绍如何在开发进程中使用它们。

目录

22.1.创建一个运行时共享库

22.2.使用跨域的RSL

22.3.使用Flex Framework作为RSL

22.4.优化RSL

22.5.创建基于MXML的模块

22.6.创建基于ActionScript的模块

22.7.使用ModuleLoader载入模块

22.8.使用ModuleManager载入模块

22.9.载入来自不同服务器的模块

22.10.与模块通信

22.11.使用查询字符串传递数据给模块

22.12.使用连接报告优化模块

加支付宝好友偷能量挖...


评论(0)网络
阅读(109)喜欢(0)flash/flex/fcs/AIR