首页 > 代码库 > 客户端交互技术简介

客户端交互技术简介


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

  总体来看,目前的客户端交互技术主要分为如下几大类别;

  1. microsoft系列:ActiveXSilverlight

  2. java系列:Java AppletRCPRAPGWT,JavaFX

  3. Adobe系列: flashflex),ActionScriptair

  4. html系列: ajax(异步IO),html5

    1. microsoft系列

    1)ActiveX 这个在10年前是非常流行的。当时的控件很单一。很多复杂的业务就被封装成一个个ActiveX控件。但这个有几个问题,1是只有IE才支持,其他浏览器现在有的虽然号称支持了,但和IE原生态环境相比,也只能说是有了,效果还是有区别的。2是需要数字签名。但是IE的安全级别又是可以设置的,所以安全漏洞百出。只能说想法是好的,效果反而成为鸡肋了。

    2Silverlight

    SilverlightMicrosoft提供的一个浏览器的、跨平台的插件,为Web带来良好的多媒体体验和丰富的交互式应用程序体验。基于.NET平台。现在可以基于浏览器,也可以独立运行。

    主要基于以下2大技术:

    XAML(可扩展应用程序标记语言--展示UI layout

    WPF(WindowsPresentation Foundation--用户界面框架

    Silverlight播出视频及动画的效果很好,支持硬件加速

    Silverlight支持windowsIOS,支持iefirefoxsafari等。

    Silverlight没有了像activex的安全的问题,也支持SEO。网站开发者还是比较偏爱的。

    Silverlight控件丰富,并支持第三方和自定义控件。

    2. java系列

    1Java Applet:是网页上的java程序。用awt作为图形库。含有Applet的网页的HTML文件代码中部带有<applet></applet>这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet。之前的google编程大赛平台就是用这个做的。要运行javaapplet,首先要装java虚拟机,然后第一次使用时,下载applet也需要一定时间。现在使用的不多了,只有在过去开发的一些企业内部管理系统中还能看见。

    2RCP。这里指的RCP是专门指Eclipse RCPRCP提供了丰富的界面控件,这使得基于 Java开发桌面应用也变得容易了很多。RCP充分发挥了插件化系统的优势,是基于 OSGi构建插件化系统的最佳实践。Eclipse RCP项目用SWT图形库和工具包取代了Java标准中的AWTSwingSWT直接调用了操作系统的图形库,从而使得Java应用程序的LOOK & Feel 与操作系统的习惯完全一致;更为重要的是,对本地方法的直接调用大幅度的提高了基于SWTJava应用程序的运行速度。当然SWT也有先天的不足,它不是标准的java控件库,市场占有率不高,同时在ios上的性能表现也不佳,只是在windows上尚可。

    RAPEclipseRich 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 应用程序。

     

    3JavaFX:JavaFX将成为Java平台上主流的图形用户界面开发库。但是在富客户端领域,由于有其他3大系列的竞争,市场份额占有还是很少,未来难以估计。在组件的外观方面,一套图形用户界面库JavaFX2.0也采用了更加流行的做法,即用CSS来定义应用的外观。JavaFX2.0也引入了界面描述语言FXML.JavaFX 2.0开始使用了java作为开发语言而不是之前的JavaFX  script.在以后的开发中,AWTSwing应该会逐渐淡出桌面应用开发的视野。 JavaFX能发挥作用的一个地方应该是在企业内部系统中。

     

    3 Adobe系列:

    1flashflex):Flash的编程模型是基于时间轴的,Flex的则是基于窗体。一个服务于设计师,一个服务于开发人员。

    2ActionScript:开发 flash或者flex的编程脚本语言。

    3Adobe Air是利用Adobe公司的Flash技术开发的视频播放平台。比较熟悉的例子:sina微博 air

    优点:1)跨平台(跨操作系统,跨浏览器) 2)技术门槛降低:只需要有web开发技术3)可以脱机运行,偶尔连接网络4)基于flash的用户体验更好

    缺点:1)用户体验和交互操作比桌面应用还有不足,并且很多应用需要安装桌面应用才行。2)需要安装虚拟机

     

     

    4.html系列

    1ajax

    这个是目前的主流。Web2.0的基础。该技术使得网页实现异步的局部更新。市面上的所有的浏览器都支持。主流流行的js框架也都为止进行了封装。在流媒体处理上还有不足。

    异步IO—是针对同步IO而言,增强clientserver交互性的socket连接手段。经常使用在各种分布式、即时通信和中间件系统中。是一种高效,且扩展性很强的通信架构。

    2Html5,是未来的趋势。在浏览器层面解决客户端交互,而不是之前说的3类,通过插件的方式来增强交互。它支持多设备跨平台。

    Html5主要包括了一些新增的ui控件,如多媒体播放器webplayercanvas等;增加了websoket的支持,这个是对异步IO的根本性的颠覆;增加webwork,舍得高性能计算和页面展示可以线程分离,不影响用户体验;增加了css3支持,展现式样上对3D效果更加支持。Html5通过history特性甚至解决了ajax不能修改URL这个先天不足。在云时代渐渐向我们走进的时候,Html5将代表了未来。当然,所有的这些需要通过市场的洗礼,一一落地。

     

     

    总而言之,客户端交互技术是在不断的向前的。不为别的,只因为它在互联网时代将带给使用者更真实的用户体验。

客户端交互技术简介