客户端交互技術介紹

隨着網絡應用的不斷豐富,客户端交互技術也如雨後春筍一般,遍地開花。正是這些技術的支持,我們的互聯網世界變得更加豐富多彩。總體來看,目前的客户端交互技術主要分為如下幾大類別:

客户端交互技術介紹

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帶來良好的多媒體體驗和豐富的交互式應用程序體驗。基於平台。現在可以基於瀏覽器,也可以獨立運行。

主要基於以下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文件代碼中部帶有這樣一對標記,當支持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也引入了界面描述語言FX 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)需要安裝虛擬機

  系列

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將代表了未來。當然,所有的這些需要通過市場的洗禮,一一落地。

總而言之,客户端交互技術是在不斷的向前的。不為別的,只因為它在互聯網時代將帶給使用者更真實的用户體驗。