客户端交互技术简介

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

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

  1. microsoft系列:
    ActiveX,
    Silverlight
  2. java系列:Java
    Applet
    ,RCP(RAP,GWT),JavaFX
  3. Adobe系列: flash(flex),ActionScript,air
  4. 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将代表了未来。当然,所有的这些需要通过市场的洗礼,一一落地。

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

时间: 2024-08-25 17:56:24

客户端交互技术简介的相关文章

第4章4节《MonkeyRunner源码剖析》ADB协议及服务: ADB命令行客户端使用简介(原创)

天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文"寻求合作伙伴编写<深入理解 MonkeyRunner>书籍".但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在所难免.有需要的就参考下吧,转发的话还请保留每篇文章结尾的出处等信息. 从前面几个小节我们知道ADB命令行客户端是存在与主机端的一个命令,用户可以使用该命令来发送服务请求到ADB服务器,ADB服务器再判断该服务请求是主机服务请求还是本地服务请求来决定是否应该将请求传送给远程adbd守护进程

Windows客户端开发简介(一)

在这样一个移动当道的年代,我跟大家讨论Windows客户端开发,似乎有些倚老卖老的意思了.然而我却觉得无论什么时候,Windows客户端开发其实还是有着不少实用经典的技术的.对了,确切说我是要说说Windows C++客户端开发,什么WinForm,WPF,并不在讨论范围之内,我承认用.NET ,C#做Windows客户端对开发人员来说确实是件轻松愉快的事,但是因为这些技术由于种种原因(主要还是效率问题)在经典的Windows客户端程序采用的少之又少,所以我打算把他们略过. 我并不是什么微软技术

kafka的c/c++高性能客户端librdkafka简介

Librdkafka是c语言实现的apachekafka的高性能客户端,为生产和使用kafka提供高效可靠的客户端,并且提供了c++接口 性能: Librdkafka 是一款专为现代硬件使用而设计的高性能库,它尝试将内存复制保持在最小,可以让用户决定是需要高吞吐量还是低延迟的服务,性能调优的两个最重要的配置是: *batch.num.messages:在发送消息之前累积在本地队列中等待的消息的最小数量. *queue.buffering.max.ms:等待batch.num.messages多长

Windows客户端开发简介(二)

一个典型的Windows客户端程序要有哪几部分构成呢?下面我会以一个国内比较流行的互联网客户端程序的基本架构来跟大家逐步展开分析,由于涉及到知识产权的问题,请大家不要问我是什么产品,当然,如果你能猜到,那我就管不着了^_^. 某视频影音互联网PC客户端产品基本架构 如上只是个粗略的分层架构图,没有更细致的划分,但是有几个地方是需要特别关注的,比如最上层的那几个部分,音视频解码引擎,UI引擎,WebKit浏览器内核,内核通信模块,日志系统. 因为音视频解码引擎和内核通信模块只是对于视频客户端和P2

Windows客户端开发简介(三)

之前的一篇文章里,我简单概要的介绍了一下界面库的知识.既然是跟界面有关,那么必然少不了很多关于绘制的内容.对于Windows开发而言,界面绘制使用的一类API就是所谓的"GDI". GDI这个东西可有历史了,但是我们就不去追根朔源了.首先,我不能免俗的要先介绍一下它的全称:"Graphic Device Interface",即"图形设备接口",从这个名称我们可以大略吸收到的信息就是:GDI是个跟图形绘制有关的接口,对的,正是这样! 先让我们来看

ADF_Oracle示例系列06_使用 JSF 开发基于 Ajax 的用户界面:ADF Faces 富客户端组件简介(案例)

2013-05-01 Created By BaoXinjian 一.摘要 待整理 待整理 待整理 待整理 待整理 待整理 Thanks and Regards

Windows客户端开发简介(四)

在上一篇文章里,我简单扼要的给大家介绍了一下GDI的基础知识,包括DC,HDC,GDI对象等等,总的来说都是些偏理论的知识,属于概念的范畴. 今天这篇文章里,我就要正式开始有点实际的东西了,我会教大家一些GDI的基本功能代码编写,基本的技巧,当然还有如何避免基本的坑,哈哈,对的,基本的坑而不是高级的. 那么我要如何说起呢,首先我要告诉大家如何创建DC,如何使用DC,如何设置DC的属性(也就是GDI对象),如何在DC上绘制简单的文字,绘制图形,绘制图片也就是位图.我还会附带的说说GDI+,说说CI

RabbitMQ系列教程之七:RabbitMQ的 C# 客户端 API 的简介

今天这篇博文是我翻译的RabbitMQ的最后一篇文章了,介绍一下RabbitMQ的C#开发的接口.好了,言归正传吧. Net/C# 客户端 API简介 1.主要的命名空间,接口和类 定义核心的API的接口和类被定义在RabbitMQ.Client这个命名空间下面: 所以要想使用RabbitMQ的功能,需要以下代码     using RabbitMQ.Client; [1].核心API的接口和类如下: IModel:表示一个符合AMQP 0-9-1 协议的通道,并且提供了很多的操作方法 ICon

[转]关于胖客户端和瘦客户端的理解

http://blog.sina.com.cn/s/blog_572390880100oo86.html C/S B/S的区别 你是不是说胖客户端相当于一个C/S结构,而瘦客户端相当于一个B/S结构呀 胖客户端和瘦客户端是相对的.之间的区别在于是否有大量的业务逻辑需要放在客户端,c/s结构中,主要的逻辑程序放在客户端,很多时候服务器是指的数据库服务器.所以是胖客户端 而在b/s结构中业务逻辑都放在服务器上.客户端只有个浏览器,服务器发送给客户端的只有遵循了html规则的字符串,当然如果你用到了a