隨着網絡應用的不斷豐富,客戶端交互技術也如雨後春筍通常,遍地開花。正是這些技術的支持,咱們的互聯網世界變得更加豐富多彩。一個瀏覽器上,不用說是簡單的動畫效果,就是一個Office應用也能順暢的使用。全部這些都要感謝客戶端交互技術的快速發展。甚至,如今的客戶端交互技術的發展的趨勢是,能夠以瀏覽器爲載體,也能夠脫離瀏覽器以單獨的應用形式存在。css
整體來看,目前的客戶端交互技術主要分爲以下幾大類別;html
microsoft系列: ActiveX, Silverlighthtml5
java系列:Java Applet,RCP(RAP,GWT),JavaFXjava
Adobe系列: flash(flex),ActionScript,airios
html系列: ajax(異步IO),html5css3
1. microsoft系列web
1)ActiveX 這個在10年前是很是流行的。當時的控件很單一。不少複雜的業務就 被封裝成一個個ActiveX控件。但這個有幾個問題,1是隻有IE才支持,其餘瀏覽器如今有的雖然號稱支持了,但和IE原生態環境相比,也只能說是有了,效果仍是有區別的。2是須要數字簽名。可是IE的安全級別又是能夠設置的,因此安全漏洞百出。只能說想法是好的,效果反而成爲雞肋了。ajax
2)Silverlight編程
Silverlight是Microsoft提供的一個跨瀏覽器的、跨平臺的插件,爲Web帶來良好的多媒體體驗和豐富的交互式應用程序體驗。基於.NET平臺。如今能夠基於瀏覽器,也能夠獨立運行。canvas
主要基於如下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將表明了將來。固然,全部的這些須要經過市場的洗禮,一一落地。
總而言之,客戶端交互技術是在不斷的向前的。不爲別的,只由於它在互聯網時代將帶給使用者更真實的用戶體驗。