Flex技术:http://baike.baidu.com/view/623340.htm
Ajax技术:http://baike.baidu.com/view/1641.htm
构建RIA的关键是:利用中间层避免传统的页面刷新。
最常见的可以从中间层获取数据的工具:JavaScript(Ajax技术)以及Flash Player的Flash(由Flex技术构建),其他包括SilverLighter技术,Java的JavaFx技术等。
1. Ajax技术
基于JavaScript与XML技术的异步数据传输技术,主要包括用于显示的XHTML和CSS技术,用于数据交换和控制的XML和XSLT,用于数据绑定的JavaScript技术。这些技术的组合改变了单个web页面外观和更新数据的方式,其不需要针对服务器的格外页面请求。
但是Ajax严重依赖于JavaScript语言影响到其执行效率,其安全性依赖于浏览器,同时JavaScript和XML相结合的方式是的组建扩展变得很麻烦,用户的交互也受到浏览器的限制。
2.Flex技术与Ajax技术的比较
(1)安全性:独立的沙箱模型机制;依赖于浏览器的安全模型
(2)移植性:运行在FlashPlayer上,与平台无关;依赖于浏览器的兼容性
(3)效率:运行在AVM2虚拟机上,编译成为本地代码使用Just InTime技术执行,效率高。使用矢量图形技术,占用内存少,占CPU多;
浏览器解释之星,在HTML和JavaScript间切换,实现效果依赖于位图,占用内存大,使用CPU少。
(4)扩展性:高;低
(5)代码:使用面向对象的AS,代码封装扩展性强;使用JS代码,代码可读性差
(6)用户交互方式:事件驱动模型;事件驱动模型
(7)与服务器数据交互:使用HTTP模式,AMF数据格式进行交互;使用XML进行数据交互
3.Flex技术
(1)使用矢量图形技术
(2)丰富的组件库
(3)对多媒体的支持广泛,提供了与其他流媒体服务器进行通信的功能,即时视频会议,视频聊天,在线录制视频等功能
(4)与服务器通信,可与JSP,PHP,ASP等主流服务器进行通信,连接远程WebService,支持Remoting和Socket等的通信
(5)延迟实例化。Flex仅在用户请求的情况下才能将部分应用程序实例化,缩短启动时间
(6)全面支持AIR
(7)支持代码重构
Flex整体框架使用Flex编译器将MXML编译成SWF文件,然后由FlashPlayer执行该SWF,实现用户的交互和数据管理。
4.Flex的工作过程
Flex程序是通过浏览器间接与服务器交互的,Flex程序被下载到浏览器中共,由浏览器插件FlashPlayer负责解释执行,只要有与之相匹配的播放插件就能正常的运行Flex程序。Flex程序向服务器发出的请求信息实际上是调用浏览器的发送功能来实现的;接收服务器返回的数据也是调用浏览器来接收的。
(1)服务器->浏览器:下载Flex程序
(2)浏览器插件FlashPlayer解释执行
(3)服务器<-浏览器:请求信息
(4)服务器响应请求,然后返回执行结果
(5)服务器->浏览器:返回执行结果
(6)浏览器的Flex程序异步接受执行结果