本文和大家重点讨论一下Flex优势 ,Flex提供了许多引人注目的优势。Flex的大部分优点源于它构建在广泛使用的AdobeFlashPlayer之上。Flex优势具体内容请看下面详细介绍。
Flex优势
Flex提供了许多引人注目的优势。Flex的大部分优点源于它构建在广泛使用的AdobeFlashPlayer之上。Flex优势主要包括:
◆完整的浏览器可移植性。任何支持FlashPlayer的浏览器(涵盖了大部分浏览器)都支持Flex及其脚本语言ActionScript(AS)。这与Ajax形成鲜明的对比,Ajax受在不同浏览器中实现的不兼容JavaScript的影响。
◆一致的观感。FlashPlayer以向所有操作系统和浏览器提供一致的观感著称。Flex使用的是FlashPlayer引擎,所以它也将提供一致的观感。
◆健壮的安全性。Flex利用经过大量严谨测试的FlashPlayer安全模块。
◆丰富的UI。Flex受益于FlashPlayer的HaloSkins、渐进填充和矢量图形等特性。
◆可伸缩的矢量图形(SVG)。Flex优于大部分基于RIA的技术,因为它支持基于矢量的绘制和直接嵌入SVG标记文件。基于SVG的图像在浏览器支持的分辨率范围内都表现得很好。这与基于位图的图像形成鲜明的对比,因为位图图像在不断放大时会出现明显的失真。
◆异步请求/响应模型。Flex优势在于为异步处理用户请求提供完整的支持。异步处理支持Web站点脱离以页面为中心的模型,这种模型在收到每个用户请求时都会刷新页面。
◆二进制数据通信。Flex优势在于为Flex客户机和后端服务器之间的二进制数据传输提供完整的支持。您可以使用Adobe的专用ActionMessageFormat(AMF)格式或其他自定义格式发送数据。Flex甚至支持从客户机到服务器的开放二进制套接字,从而实现“真正的”数据发送。注意,这个特性不能使用浏览器的加密设施,比如SecureSocketLayer(SSL)。
◆运行时共享库(RSL)和模块化。Flex对这些特性的支持确保您能够动态地加载模块,这意味着您可以向正在运行的应用程序添加新的特性,或利用由运行在相同客户机上的其他Flex应用程序加载的RSL。这能够减少应用程序特性的启动时间,因为它压缩了初始二进制文件的大小。
◆客户端缓存。Flex对客户端缓存提供强大的支持。只要用户授权,Flex应用程序就能在客户端上缓存任意大小的数据,这在接下来的会话频繁请求相同的数据时减少网络数据的往返。您可以缓存任何类型的数据,包括完整的对象图形、定制类、地图和数组。这种支持要比HTMLcookie先进得多,HTMLcookie仅允许应用程序存储字符串名称值对,并且每个Web站点仅能存储4KB名称值对。
◆跨浏览器通信。Flex支持在相同类型的浏览器、相同浏览器中的不同选项卡,甚至是相同机器上的不同浏览器中运行的应用程序之间通信。这个特性意味着许多应用程序能够共享数据,从而实现丰富的终端用户体验。
◆流线化(Streaming)。Flex对流线化二进制数据提供出色的支持。对于需要向终端用户传输大量数据的应用程序,流线化是至关重要的,因为它让应用程序向终端用户显示先到达的数据。
◆强大的后台连接性。在起步时,Flex就为流行的后台技术提供出色的支持,比如JavaPlatformEnterpriseEdition、Microsoft.NET平台、ColdFusion和PHP。连接性支持有助于Flex在客户端方面的推广。
◆丰富的框架。Flex优势在于为组件开发提供一个健壮的框架,并且包含许多为开发人员提供便利的开箱即用组件。这有助于实现快速开发和交付项目。
◆调试和编辑器支持。Adobe开发了一个健壮的、基于Eclipse的编辑器FlexBuilder,它大大简化了Flex应用程序的开发和调试。这是一个非常明智的决策。
这些强大的特性让Flex成为创建UI的最佳工具之一,不管现在还是将来。使用Flex进行开发的另一个好处是:您可以通过组合和重用已经构建好的组件创建一些有趣的解决方案,这非常符合Web2.0的精神。不过,如果您希望从头构建新的定制组件,那么就要困难得多。Flex提供的强大特性可能会鼓动您去创建复杂完美的组件,让它们实现专属于桌面应用程序(使用openGL等库构建)的优势。考虑以ElectronicArts赛车游戏NeedforSpeed为模板,在Web上编写一个游戏引擎的可能性。或者使用现实中的数据流和链接构建一个ISP拓扑。我相信,未来Flex将实现这些应用程序以及许多其他类似的应用程序,但是目前的需求和工具都还不太成熟。不管如何,企业的业务依赖于基于Web的UI,并且能够大大受益于Flex提供的强大功能。
【编辑推荐】
- Flex优势和特色汇总
- Flex基础 创建第一个Flex项目
- 解析Flex事件执行流程
- FlexBuilder3.0与Eclipse3.4的完美结合
- 学习笔记 FlexBuilder2.0中如何使用基于Lists的控件