我对Flex的理解

思考FlashFlex by 达达 at 2006-11-27

经常朋友和我谈起Flex时,经常会把它和AJAX做比较。当然不是因为它们都以X结尾这么简单,主要还是因为他们的应用领域相近的缘故。

Flex和AJAX都被用在Web表示层的开发,特别是在RIA -- Rich Internet Application的开发中。它们都能给Web应用程序带来良好的用户体验同时又可以减轻服务器负载(当然这也需要良好的服务器程序配合,和正确的使用技术)。

虽然它们的应用领域相近,效用也类似。但是我还是认为Flex和AJAX没什么可比性,它们不能算一个层面上的东西。拿FLex和AJAX做比较就像拿Javascript和Java Applet来做比较差不多。根本不是一个级别的东西。

了解AJAX的人知道AJAX是"异步Javascript和XML"的缩写,用过AJAX的人应该清楚,AJAX中用到的异步请求技术实现起来其实顶多100多行代码就可以实现。AJAX只是一个技术,而Flex是一个完善框架,AJAX的优点要靠良好的AJAX框架才能体现出来,所以要比顶多只能拿AJAX框架和Flex比。

我本来想在这里做个比较,但是现有的AJAX框架实在太多,并且我本人也没对具体某个AJAX框架比较熟悉,所以我不多废话,我把Flex可以实现而AJAX不能实现的地方列举出来就好了。

1.Flex可以使用Socket或者XMLSocket保持和服务器的长时间全双工数据传输,AJAX因为是基于Javascript,所以他没把法做到。

2.Flex可以操作二进制数据,AJAX又因为Javascript的原因,没办法做到。

3.Flex的开发环境允许端点调试,监视变量的变化,单步运行程序等(和软件开发一样了),AJAX似乎还没有这么强的开发环境支持(我不敢说的太死,AJAX调试理论上是可以做到的,主要是有没有人去实现而已)

4.Flex的运行环境Flash Player有极高的执行效率,特别是Flash Player 9的执行效率,已经可以胜任在线3D游戏的开发了!

5.Flex的应用程序因为Flash Player的原因,在不同浏览器不同系统下运行的表现都是一致的,而AJAX因为Javascript,CSS,HTML的原因,要做到一致性很困难。

6.Action Script 3.0语言集成的XML操作,效率和操作性当然是在哪些再封装的AJAX框架之上。

以上就是Flex的主要优势了,但是不管Flex再强,它最终产物也还是运行在Flash Player上的一个或者几个Flash文件,它并不能直接的进行数据库操作等,这就需要像.NET、Java、PHP等这样的后台开发平台来支持,我近来打算有空的时候写一系列Flex和.NET协作应用的教程放在Blog上和我的朋友们一起学习Flex也帮助自己巩固知识,今天这篇就算是前言和预告吧。