客户端交互技术简介

手册/FAQ (447) 2016-05-05 10:55:47

随着网络应用的不断丰富,客户端交互技术也如雨后春笋一般,遍地开花。正是这些技术的支持,我们的互联网世界变得更加丰富多彩。一个浏览器上,不用说是简单的动画效果,就是一个Office应用也能顺畅的使用。所有这些都要感谢客户端交互技术的快速发展。甚至,现在的客户端交互技术的发展的趋势是,可以以浏览器为载体,也可以脱离浏览器以单独的应用形式存在。

总体来看,目前的客户端交互技术主要分为如下几大类别;
microsoft系列: ActiveX, Silverlight
Java系列:Java Applet,RCP(RAP,GWT),JavaFX
Adobe系列: flash(flex),ActionScript,air
html系列:  ajax(异步IO),html5
1. microsoft系列
1)ActiveX 这个在10年前是非常流行的。当时的控件很单一。很多复杂的业务就 被封装成一个个ActiveX控件。但这个有几个问题,1是只有IE才支持,其他浏览器现在有的虽然号称支持了,但和IE原生态环境相比,也只能说是有了,效果还是有区别的。2是需要数字签名。但是IE的安全级别又是可以设置的,所以安全漏洞百出。只能说想法是好的,效果反而成为鸡肋了。
2)Silverlight
Silverlight是Microsoft提供的一个跨浏览器的、跨平台的插件,为Web带来良好的多媒体体验和丰富的交互式应用程序体验。基于.NET平台。现在可以基于浏览器,也可以独立运行。
主要基于以下2大技术:
XAML(可扩展应用程序标记语言)--展示UI layout
WPF(WindowsPresentation Foundation)--用户界面框架
Silverlight播出视频及动画的效果很好,支持硬件加速
Silverlight支持windows 和iOS,支持ie和firefox,safari等。
Silverlight没有了像activex的安全的问题,也支持SEO。网站开发者还是比较偏爱的。
Silverlight控件丰富,并支持第三方和自定义控件。
2. java系列
1)Java Applet:是网页上的java程序。用awt作为图形库。含有Applet的网页的HTML文件代码中部带有<applet> 和</applet>这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet。之前的google编程大赛平台就是用这个做的。要运行javaapplet,首先要装java虚拟机,然后第一次使用时,下载applet也需要一定时间。现在使用的不多了,只有在过去开发的一些企业内部管理系统中还能看见。
2)RCP。这里指的RCP是专门指Eclipse RCP。RCP提供了丰富的界面控件,这使得基于 Java 开发桌面应用也变得容易了很多。RCP 充分发挥了插件化系统的优势, 是基于 OSGi 构建插件化系统的最佳实践。Eclipse RCP项目用SWT图形库和工具包取代了Java标准中的AWT和Swing。SWT直接调用了操作系统的图形库,从而使得Java应用程序的LOOK & Feel 与操作系统的习惯完全一致;更为重要的是,对本地方法的直接调用大幅度的提高了基于SWT 的Java应用程序的运行速度。当然SWT也有先天的不足,它不是标准的java控件库,市场占有率不高,同时在ios上的性能表现也不佳,只是在windows上尚可。
RAP(Eclipse Rich AjaxPlatform):RAP 允许开发人员使用丰富的 Java 库和Eclipse API 构建基于浏览器的 Ajax 应用程序。RAP 主要运行在服务器上。由于 RAP 运行在服务器上,因此允许您访问丰富的 Java API 并允许通过 OSGi 使用著名的 Eclipse 插件模型。RAP 版与 RCP 版的主要差别在于插件依赖性(RAP 插件)和应用程序入口点(IEntryPoint)。
GWT  (GoogleWeb Toolkit)允许使用 Java 来编写富 Internet 应用程序的代码。GWT 运行在客户机上。GWT 类似一个web的 SWT 应用程序。
 
3)JavaFX:JavaFX将成为Java平台上主流的图形用户界面开发库。但是在富客户端领域,由于有其他3大系列的竞争,市场份额占有还是很少,未来难以估计。在组件的外观方面,一套图形用户界面库JavaFX2.0也采用了更加流行的做法,即用CSS来定义应用的外观。JavaFX2.0也引入了界面描述语言FXML.JavaFX 2.0开始使用了java作为开发语言而不是之前的JavaFX  script. 在以后的开发中,AWT和Swing应该会逐渐淡出桌面应用开发的视野。 JavaFX能发挥作用的一个地方应该是在企业内部系统中。
 
3 Adobe系列:
1)flash(flex):Flash的编程模型是基于时间轴的,Flex的则是基于窗体。一个服务于设计师,一个服务于开发人员。
2)ActionScript:开发 flash或者flex的编程脚本语言。
3) Adobe Air是利用Adobe公司的Flash技术开发的视频播放平台。比较熟悉的例子:sina 微博 air。
优点: 1)跨平台(跨操作系统,跨浏览器) 2)技术门槛降低:只需要有web开发技术3)可以脱机运行,偶尔连接网络4)基于flash的用户体验更好
缺点: 1)用户体验和交互操作比桌面应用还有不足,并且很多应用需要安装桌面应用才行。2)需要安装虚拟机
 
4.html系列
1)ajax
这个是目前的主流。Web2.0的基础。该技术使得网页实现异步的局部更新。市面上的所有的浏览器都支持。主流流行的js框架也都为止进行了封装。在流媒体处理上还有不足。
异步IO—是针对同步IO而言,增强client和server交互性的socket连接手段。经常使用在各种分布式、即时通信和中间件系统中。是一种高效,且扩展性很强的通信架构。
2)Html5,是未来的趋势。在浏览器层面解决客户端交互,而不是之前说的3类,通过插件的方式来增强交互。它支持多设备跨平台。
Html5主要包括了一些新增的ui控件,如多媒体播放器webplayer,canvas等;增加了websoket的支持,这个是对异步IO的根本性的颠覆;增加webwork,舍得高性能计算和页面展示可以线程分离,不影响用户体验;增加了css3支持,展现式样上对3D效果更加支持。Html5通过history特性甚至解决了ajax不能修改URL这个先天不足。在云时代渐渐向我们走进的时候,Html5将代表了未来。当然,所有的这些需要通过市场的洗礼,一一落地。
 
总而言之,客户端交互技术是在不断的向前的。不为别的,只因为它在互联网时代将带给使用者更真实的用户体验。

THE END