當前位置:才華齋>設計>計算機輔助設計>

客戶端互動技術介紹

計算機輔助設計 閱讀(2.22W)

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

客戶端互動技術介紹

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

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