[藍色理想]RIA和AJAX分析

來源:互聯網
上載者:User

從體驗時代的@RIA郵件系統和@AJAX郵件系統分析RIA和AJAX

本文主要通過對RIA郵件應用和AJAX郵件應用的使用者體驗對比,按照對比分析的方式將體驗中的感性升華為理性。同時,此文也可以給所有從事WEB工作的設計人員和開發人員以借鑒參考,也能普及RIA常識和AJAX常識。文章參考了一些網路上的文章和資源,希望作者體諒,呵呵反正非商業用途吧。主要參考資源有:http://www.richbox.com,http://xpgao.blogchina.com/3991873.html
http://gocom.primeton.com/modules/techresource/article_page.php?linkid=319
http://www.ljxt.com/blog/post/113.html
感謝這些資源提供者

---------------------------------------------------------
RIA應用之Goowy 郵件
http://www1.goowy.com

AJAX應用之Google郵件
http://mail.google.com
---------------------------------------------------------

AJAX與RIA共性:
都是WEB2.0的應用
都具有人性化的設計理念

AJAX與RIA不同:
AJAX比較簡單素雅,人性化,訪問速度快。缺點:代碼混亂,編寫複雜,不符合標準,對搜尋引擎不友好。程式效率低。
RIA可擴充性更大,人性化更多,視覺和互動上更好,但缺點是訪問速度慢,下載檔案大,還有RIA應用程式特別耗CPU,程式效率比較低,很多問題還需要解決。

---------------------------------------------------------
RIA
---------------------------------------------------------

富互連網應用系統(RIA)簡介:RIA基礎:RIA入門

請關注那些超越正在失去生命力的HTML標準的技術

在過去的大約兩年中,人們的興趣一直是想構建一個"富用戶端":這是一個使用者介面,它比用HTML能實現的介面更加健壯、反應更加靈敏和更具有令人感興趣的可視化特性。RIA(Rich Internet Application,富互連網應用系統)技術允許我們在網際網路上以一種象使用Web一樣簡單的方式來部署富用戶端程式。無論將來RIA是否能夠如人們所猜測的那樣完全代替HTML應用系統,對於那些採用胖用戶端技術運行複雜應用系統的機構來說,RIA確實提供了一種廉價的選擇。 

在本專欄中,我將列舉一些當前的RIA產品和技術,並且提供一些如何開始應用這些產品和技術的啟示。在DevTrends網站和即將發行的近幾期Oracle Magazine雜誌上,我將詳細探討使用Oracle平台部署RIA的特定技術和策略。 

為什麼用RIA?

基於HTML的應用程式之所以變得流行是由於應用系統的部署成本低、結構簡單,且HTML易於學習和使用。很多使用者和開發人員都樂於放棄由案頭電腦帶來的使用者介面改進,來實現對新資料和應用系統的快速存取。與喪失一些重要的UI功能相比,基於Web的方式所帶來的好處要更大得多。 

然而,某些應用系統並不完全適合採用HTML技術。複雜的應用系統可能要求多次提取網頁來完成一項交易處理,在某些領域中,如醫藥和財務領域,這往往導致互動速度低得無法接受。讓我考慮一個專案管理系統:我們可以將其實現為一個HTML應用系統,但是如果使用者可以看到並且操作圖表、進度表和各種階層,那麼顯然會工作得更好。 

此外,雖然HTML開始走向簡單,但是即使簡單的互動活動也仍然需要用很多的指令碼來完成。即使一個輸入表單經過仔細的布置和全面的指令碼設計,它從瀏覽器所能發送的也僅僅是簡單的"名字/值"對。如果一個HTML表單能夠以XML文檔形式發送和接收更複雜的資料結構,那就好多了。 

RIA利用相對健壯的用戶端描述引擎,這個引擎能夠提供內容密集、響應速度快和圖形豐富的使用者介面。除了提供一個具有各種控制項(滑標、日期選取器、視窗、選項卡、微調控制器和尺規等)的介面之外,RIA一般還允許使用SVG(Scalable Vector Graphics,可伸縮向量圖)或其他技術來隨時構建圖形。一些RIA技術甚至能夠提供全活動的動畫來對資料變化作出響應。 

RIA的另一個好處在於,資料能夠被緩衝在用戶端,從而可以實現一個比基於HTML的響應速度更快且資料往返於伺服器的次數更少的使用者介面。對於無線裝置和需要偶爾串連的裝置來說,將來的趨勢肯定是向富用戶端的方向發展,並且會逐漸遠離基於文本的Web用戶端。那些運行在膝上裝置上的應用系統,可以被設計成以離線方式工作,或者至少當串連丟失的時候能基本上以離線的方式工作。 

圖1給出了一個典型的RIA體繫結構。XML通常被用作資料轉送的格式,有時也被用來描述表單的布局。在很多的執行個體中,用戶端可以保持與資料來源的串連,這樣伺服器能夠即時地對用戶端資料進行更新。對一個Oracle資料的訪問可以通過Web服務調用來完成。 


圖1

用於富用戶端的技術

下面是一些可用的RIA技術: 

Java:一些相當複雜的用戶端應用程式(Oracle的JDeveloper,Eclipse)都是用Java編寫的,這說明可以用Java來建立幾乎任何一個能夠想象得到的富用戶端應用程式。到目前為止,Java已經出現幾年了,並且完全支援建立基於表單的使用者介面。除了Java基礎類(JFC/Swing)中的使用者介面組件之外,開發人員還可以使用來自於Eclipse Project的SWT工具箱和許多第三方工具箱進行開發。對於圖形來說,可以採用Java 2D API--一個非常完整且非常複雜的圖形API。Java還具有對XML和Web服務無人匹敵的支援能力。你可以通過一個Web瀏覽器使用Java外掛程式軟體,或使用Java運行時環境中較新的Java Web Start技術來部署應用程式。使用Java建立富用戶端程式的主要缺陷是它的複雜性(即使對簡單的表單和圖形也要求編寫非常煩瑣的代碼)。它的優點在於Java對Web標準的全面支援,及該語言和類庫的深刻內涵。 

XUL:XUL(念作"zool")是一個基於XML的使用者介面語言,它來自於Mozilla的開放源碼項目。它可用於建立表單應用程式,這些應用程式不但可以在Mozilla瀏覽器上運行,而且也可以運行在其他描述引擎上,如Zulu(一個Flash MX組件)和Thinleys(一個Java實現)。XUL描述引擎都非常小(100K以下),它可以使用XML資料也可以產生XML資料。同Java的情況一樣,XUL也有一個非常大的使用者團體,這個團體有大量的開放源工具,如Theodore ThinletEditor(見“下一步”)——一個使你能夠以圖形化方式布局使用者介面,且可以產生相應XUL的Java應用程式。XUL的一個主要缺點在於它目前還沒有獲得一個主要商業實體的支援。XUL最大的優點在於它與Gecko引擎的整合(開啟了通向大量Web標準的大門),以及與大多數其他XML使用者介面描述語言相比它是一種非常具有表達力和簡潔的語言。 

Macromedia Flash和Flex:Flash是一個已經成熟的商業產品,它可以在Web網頁中引入互動圖形介面。最近經過升級後,新版本包含了建立表單風格的應用程式的功能。儘管Flash作為一個在Web上最廣泛部署的前端技術還有爭議(取決於所選用的Flash Player版本),但據稱已經有98%以上的案頭系統都支援Falsh。由於用來建立動畫式圖形的Flash工具其功能十分強大和是可視化的(與之相反其它技術要求進行低級的圖形編碼),所以圖形設計人員使用起來十分得心應手。Flah採用的指令碼語言是ActionScript--ECMAScript 1.5的一個變種,該指令碼語言又被稱為JavaScript。Flex產品對Flash增加了一個XML描述語言,使得可以編譯使用者介面,並且能夠用Flash Player來隨時進行描述。Flex使得傳統的開發機構能更好地瞭解和使用Flash。Flex和Flash的最大缺點在於對XML和Web服務等標準的支援很有限,而且作為應用開發工具的環境還不大成熟。Flex和Flash的優點在於它可以很容易的用來建立複雜的動畫式顯示,以及可以使用第三方附件。

Oracle Forms:Oracle Forms是用來構建以資料庫為中心的互連網應用系統的一個成熟的商品化產品。通過Oracle Forms,你可以使用一個輸出表單模組檔案的視覺化設計工具建立表單。為了便於在該設計工具外部進一步進行處理,模組檔案要麼採用私人的FMT格式,要麼採用XML格式。這些模組檔案驅動一個描述表單的Java運行時環境。除了所有表單的標準視窗小組件之外,還可以通過整合附加的可插入的Java組件和一些定製的JavaBean來實現更多的功能性。Oracle Forms採用的指令碼語言為PL/SQL,Oracle資料庫也採用同樣的指令碼語言。Oracle Forms的一個非常有趣的特點就是,用來建立、編輯和編譯表單模組檔案的Java API--開發人員可以通過建立指令碼來產生眾多的表單應用程式,或者進行全域性的改動。Oracle Forms的主要缺點是,進行Web部署需要獲得Oracle應用伺服器的使用許可。它的優點是,它可以與Oracle資料庫和Oracle平台的其他部分(如Single Sign-On(單一登入)和Enterprise Manager(企業管理器))緊密整合,對國際化的廣泛支援,以及建立以資料為中心應用程式的極高效率。 

開始選擇和使用RIA技術

這裡只討論了可用於建立RIA的技術中的一些有代表性的例子,還有很多其他的技術。當選擇一項RIA技術的時候,你需要權衡以下幾個因素:

  • 開放源產品與商品化產品進行對比; 
  • 成熟的功能與最新的特性進行對比; 
  • 輕量級的功能特性範圍與UI的豐富性進行對比; 
  • 以媒體為中心的應用程式與以資料為中心的應用程式進行對比;

---------------------------------------------------------
AJAX
---------------------------------------------------------

作為J2EE開發人員,我們似乎經常關注“後端機制(backend mechanics)”。我們通常會忘記,J2EE的主要成功之處在Web應用程式方面;許多原因使得人們喜歡利用Web開發應用程式,但主要還是因為其易於部署的特點允許網站以儘可能低的成本擁有上百萬的使用者。遺憾的是,在過去幾年中,我們在後端投入了太多的時間,而在使我們的Web使用者介面對使用者自然和響應靈敏方面卻投入不足。

本文介紹一種方法,Ajax,使用它可以構建更為動態和響應更靈敏的Web應用程式。該方法的關鍵在於對瀏覽器端的JavaScript、DHTML和與伺服器非同步通訊的組合。本文也示範了啟用這種方法是多麼簡單:利用一個Ajax架構(指DWR)構造一個應用程式,它直接從瀏覽器與後端服務進行通訊。如果使用得當,這種強大的力量可以使應用程式更加自然和響應靈敏,從而提升使用者的瀏覽體驗。

該應用程式中所使用的範例程式碼已打包為單獨的WAR檔案,可供下載。

簡介

術語Ajax用來描述一組技術,它使瀏覽器可以為使用者提供更為自然的瀏覽體驗。在Ajax之前,Web網站強制使用者進入提交/等待/重新顯示範例,使用者的動作總是與伺服器的“考慮時間”同步。Ajax提供與伺服器非同步通訊的能力,從而使使用者從請求/響應的迴圈中解脫出來。藉助於Ajax,可以在使用者單擊按鈕時,使用JavaScript和DHTML立即更新UI,並向伺服器發出非同步請求,以執行更新或查詢資料庫。當請求返回時,就可以使用JavaScript和CSS來相應地更新UI,而不是重新整理整個頁面。最重要的是,使用者甚至不知道瀏覽器正在與伺服器通訊:Web網站看起來是即時響應的。

雖然Ajax所需的基礎架構已經出現了一段時間,但直到最近非同步請求的真正威力才得到利用。能夠擁有一個響應極其靈敏的Web網站確實激動人心,因為它最終允許開發人員和設計人員使用標準的HTML/CSS/JavaScript堆棧建立“案頭風格的(desktop-like)”可用性。

通常,在J2EE中,開發人員過於關注服務和持久性層的開發,以至於使用者介面的可用性已經落後。在一個典型的J2EE開發週期中,常常會聽到這樣的話,“我們沒有可投入UI的時間”或“不能用HTML實現”。但是,以下Web網站證明,這些理由再也站不住腳了:

BackPack
Google Suggest
Google Maps
PalmSphere

所有這些Web網站都告訴我們,Web應用程式不必完全依賴於從伺服器重新載入頁面來向使用者呈現更改。一切似乎就在瞬間發生。簡而言之,在涉及到使用者介面的響應靈敏度時,基準設得更高了。

定義Ajax

Adaptive Path公司的Jesse James Garrett這樣定義Ajax:

Ajax不是一種技術。實際上,它由幾種蓬勃發展的技術以新的強大方式組合而成。Ajax包含:

基於XHTML和CSS標準的表示;
使用Document Object Model進行動態顯示和互動;
使用XMLHttpRequest與伺服器進行非同步通訊;
使用JavaScript綁定一切。

這非常好,但為什麼要以Ajax命名呢?其實術語Ajax是由Jesse James Garrett創造的,他說它是“Asynchronous JavaScript + XML的簡寫”。

Ajax的工作原理

Ajax的核心是JavaScript對象XmlHttpRequest。該對象在Internet Explorer 5中首次引入,它是一種支援非同步請求的技術。簡而言之,XmlHttpRequest使您可以使用JavaScript向伺服器提出請求並處理響應,而不阻塞使用者。

在建立Web網站時,在用戶端執行螢幕更新為使用者提供了很大的靈活性。下面是使用Ajax可以完成的功能:

動態更新購物車的物品總數,無需使用者單擊Update並等待伺服器重新發送整個頁面。

提升網站的效能,這是通過減少從伺服器下載的資料量而實現的。例如,在Amazon的購物車頁面,當更新籃子中的一項物品的數量時,會重新載入整個頁面,這必須下載32K的資料。如果使用Ajax計算新的總量,伺服器只會返回新的總量值,因此所需的頻寬僅為原來的百分之一。
消除了每次使用者輸入時的頁面重新整理。例如,在Ajax中,如果使用者在分頁列表上單擊Next,則伺服器資料只重新整理列表而不是整個頁面。
直接編輯表格式資料,而不是要求使用者導航到新的頁面來編輯資料。對於Ajax,當使用者單擊Edit時,可以將靜態表格重新整理為內容可編輯的表格。使用者單擊Done之後,就可以發出一個Ajax請求來補救伺服器,並重新整理表格,使其包含靜態、唯讀資料。
一切皆有可能!但願它能夠激發您開始開發自己的基於Ajax的網站。然而,在開始之前,讓我們介紹一個現有的Web網站,它遵循傳統的提交/等待/重新顯示的範例,我們還將討論Ajax如何提升使用者體驗。

---------------------------------------------------------
RIA與AJAX
---------------------------------------------------------

位於尤他州Midvale的Burton Group公司的進階分析師Richard Monson-Haefel認為,當提到被大肆宣傳的富互連網應用(Rich Internet Application ,RIA)技術時,更少的才是更好的。這種技術能夠大大促進使用者的Web體驗,因為不必再從伺服器重新整理頁面,Ajax的風格是單頁面介面。但他在最近關於 Ajax的電視短片中說過度使用會導致導航困難。

他說,Ajax比起其它RIA技術的主要優點是無縫與HTML整合,因此它可以大量使用而不需要改變現有Web內容。“把它想象成Web網站的調料。這樣做的風險非常小。Ajax還是後台無關且不需要任何外掛程式。與其它RIA技術,例如 Macromedia的Flash等聯合使用,Ajax會是一個強大的工具。”

但是,該技術還沒有成熟,而且工具和架構還沒有得到支援。Monson-Haefel說:“如果你不喜歡用工具集和類庫,Ajax就不適合你。”

Burton Group定義“富”互連網應用是能夠在標準HTML架構和連結之上提供功能的。Google Maps就是這樣一個優秀的Ajax例子。

與Ajax最近被才提出不同,JavaScript已經存在很久了。它基於JavaScript/ECMAScript,、階層式樣式表、文件物件模型以及XML HTTP請求。最初,很難跨越不同瀏覽器來設計Ajax風格的應用程式。但現在,主流瀏覽器已經演變到支援微軟技術的實現了,並成為了最普通的特徵。

今天,佔主導地位的RIA技術是Macromedia的Flash/Flex。其它RIA技術包括為Microsoft Windows Presentation Foundation開發的使用者介面標記語言,稱為XAML(Extensible Application Markup Language,可擴充應用程式標記語言)。還有Mozilla的基於XML的使用者介面語言XUL,droplets和Java applets以及微軟將要推出的Windows Presentation Foundation/Everywhere (WPF/E)。

Monson-Haefe說:“Flash是很好的技術,適合於豐富動畫與圖形,但Flash好象是一個小池塘中的大魚。現實市場現在還沒有那麼大,因此隨著市場變大它是否能佔領市場還是一個疑問。而微軟將推出的WPF/E會是一個有力的競爭者。”

微軟還計劃推出一個Ajax架構擴充,稱為Atlas。Monson-Haefel認為它非常有前途。他說,Ajax的其它整合式開發環境還沒成為主流。這包括Morfik Technology公司的Javascript Synthsis Technology (JST)、JetBrains公司的IntelliJ IDEA 5.0、Tibco Software公司的Tibco General Interface (GI)、JackBe公司的Visual GUI Builder、Backbase B.V.公司的Backbase以及開源的Ruby on Rails架構。

他說:“它已經內建了Ajax功能,使你能夠用Ruby程式設計語言編寫Ajax應用程式。”

Monson-Haefel說:“用於編寫Ajax應用的Tibco工具非常好。JackBe也是相當好的RIA技術而Backbase或許是現在更好的一個。IDE的優點就是所見即所得 (WYSIWYG)的開發方式,但你購買了他們的GUI,這樣你也受到觀感上的束縛。”

除了IDE和架構擴充,Monson-Haefel還提到可用的Ajax UI工具和遠程工具還有很多,包括私人的和開源的產品。他說,只有一部分。根據Burton Group公司最近的一項調查,在488位Ajax開發人員中,最流行的工具集、類庫和架構擴充是有MIT風格認證的JavaScript架構—— Prototype,JavaScript 類庫——Script.aclo.us,有Apache 2.0認證的Direct Web Remoting,有Academic Free License v 2.1的Dojo UI工具集以及Ruby on Rails。

至於資料,對Ajax的關注主要集中在B2C的Web網站,但Monson-Haefel指出Ajax實際上與Web服務和SOA有緊密聯絡,它能影響企業門戶。

“一些人相信Ajax將成為門戶解決方案的主要複蘇因素。門戶被宣傳了很久,但實際上它並非所謂的銀彈。而Ajax展示層與門戶的結合將促進所有使用者的體驗。”

Monson-Haefel警告說Ajax很容易被濫用。“假如開發人員不理解使用理論,他們就會胡亂應用它而且人們會刻意避開JavaScript。我的推理來自瀏覽器快顯視窗。這種技術源於一種可用特性,但由於被濫用它已經成為Web技術中的下等公民,人們也不再使用它了。”

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.