常見的AJAX架構有:
DWR - Web Remoting
Buffalo - Web Remoting (based on prototype)
prototype - JS OO library
openrico - JS UI component (based on prototype)
dojo - JS library and UI component
qooxdoo - JS UI component (C/S Style)
YUL - JS UI component
其中關於DWR和Buffalo之間的比較,它們都是Web Remoting架構,區別在於:
DWR使用自訂的簡單文本協議,而Buffalo使用burlap協議。因此Buffalo解析大資料量可能會比較慢,然而可以適用於多種伺服器端和用戶端,並且burlap協議的完整性和支援的資料類型更加豐富
Buffalo基於prototype,如果你的AJAX應用也是基於prototype,那麼可以減少重複載入prototype的頻寬,並且獲得相當一致的編程概念
DWR的伺服器端實現要比Buffalo完善一些
DWR更加通用一些,使用者比較廣,而Buffalo是國內的Michael寫的,使用者使用比較少(名氣較小)
建議使用buffalo,相對更加易用,然而伺服器端功能有待完善
此外,
prototype是一個非常優雅的JS庫,定義了JS的物件導向擴充,DOM操作API,事件等等,之上還有rico/script.aculo.us實現一些JS組件功能和效果(不過目前還不是很完善),以prototype為核心,形成了一個外圍的各種各樣的JS擴充庫,是相當有前途的JS底層架構,值得推薦,prototype以及rico/script.aculo.us的一個特出特點就是非常易學易用,門檻很低,常常是一兩行JS代碼就可以搞定一個相關的功能。同時它也是RoR整合的AJAX JS庫。
qooxdoo是一個功能很強的JS組件庫,完全模仿Windows作業系統的GUI組件。特點是不通過常規的HTML來構造頁面,完全使用JS以類似VB/Delphi風格的編程方式構造Web GUI介面,比較適合內網面向C/S風格的web應用,,而不適合面向Internet的介面多變風格的應用。qooxdoo的一個重大賣點在於qooxdoo將要提供一個FormDesigner的IDE,通過在IDE裡面的可視化拖拽設計方式來自動產生C/S風格的web頁面js代碼。qooxdoo缺點是JS檔案體積過大,超過200KB,初次下載會比較慢,而且並不適合Internet消費類網站。
dojo是一個各個方面相當完善的JS庫,包括了JS本身的語言擴充,以及各個方面的工具類庫,和比較完善的UI組件庫,也被廣泛應用在很多項目中,他的UI組件的特點是通過給html標籤增加tag的方式進行擴充,而不是通過寫JS來產生,dojo的API模仿Java類庫的組織方式。dojo的優點就是庫相當完善,發展時間也比較長,缺點是檔案體積也比較大,200多KB,初次下載相當慢,此外,dojo的類庫使用顯得不是那麼易用,至少給我的感覺是相當笨拙,特別是和prototype相比,更加顯得難用。
YUL是Yahoo新近發布的AJAX組件庫,也是一個包含了各個方面,從工具類庫到通訊,到UI組件的綜合性JS庫。YUL的優勢在於文檔非常齊全,而且有Yahoo的支援,缺點是庫目前還是不是很全,功能也不強大。
當然,更多的架構和工具介紹:Round-up of 50 AJAX Toolkits and Frameworks
http://www.maxkiesler.com/index.php/weblog/comments/round_up_of_50_ajax_toolkits_and_frameworks/
還有篇AJAX架構匯總:
http://www.duduwolf.com/post/AJAX_Frameworks.asp
我這裡選4個介紹認識下:
Google推出Java開發Ajax架構
Google 發布 Google Web Toolkit。Google Web Toolkit是一個開放版本的AJAX Framework,通過它使用者可以構建像Google Maps和Gmail之類的Web應用程式。這個Google Web Toolkit beta是免費的,它是一個基於java的工具,並能夠和任何java開發工具協同工作。
GWT已經加入到Google的程式碼程式庫當中,這個程式碼程式庫包含了很多API和開發工具。Google產品經理Bret Taylor表示,當使用者把應用程式部署到產品當中時,GWT編譯器只要簡單的把使用者的java應用程式轉換成瀏覽器支援的JavaScript和HTML就行。
官方網站: http://code.google.com/webtoolkit/
Atlas:微軟的Ajax
http://www.cnbruce.com/blog/showlog.asp?cat_id=34&log_id=730
微軟致力於簡化Ajax風格Web應用的開發,並提供豐富的、可互動的和個人化的使用者體驗。開發人員可以對用戶端指令碼不甚瞭解;但他們可以很容易地開發和調試這種應用程式。
出於這一目的,微緩啟動了一個新的項目,研發代號“Atlas”。Atlas為開發這帶來了如下特性:
·Atlas用戶端指令碼架構
·Atlas的ASP.NET伺服器控制項
·ASP.NET Web Services整合
·Atlas的ASP.NET構建塊
·用戶端構建塊服務
Buffalo:國人開發的AJAX應用程式框架
來源:http://news.csdn.net/n/20050609/22073.html
Web開發正逐漸層得有趣。許多以前在C/S系統中才能夠實現的效果,Web頁面中已經能夠逐漸可以實現。由於傳統Web系統給人們的慣性,使用者對於這些新型應用感到激動,使用者體驗得到極大程度的改善。
AJAX是開發基於web的rich client的一種方式,Buffalo則是實現AJAX的一個架構。Buffalo中定義了Web遠程調用的傳輸基礎,並且將遠程調用對象完整的序列化到了本地,成為可以被JavaScript編程觸及的對象。Buffalo中的重要組件-BuffaloBinding,提供了將JavaScript對象綁定到HTML元素的能力。這種綁定將是無侵入的,只需要在HTML元素中加入若干個不影響排版的屬性,即可將資料與介面綁定。
Buffalo首頁: http://www.amowa.net/buffalo/
jsLINB--國人的一個完整Ajax/web2.0技術架構
LINB(Lazy INternet and Browser) 是一個面向程式編寫者的軟體架構。它的目的是讓程式編寫者在對軟體的全域了如指掌的基礎上,實現更目標驅動的、任務清晰的、高效的軟體應用。 LINB 是平台無關的架構,相容 C/S、B/S、RIA 和 Web2.0 等等。
頁面上的是LINB架構的 javascript&AJAX 用戶端基礎:jsLINB。
jsLINB的線上demo:http://www.linb.net/linb/
裡麵包括變數類型檢測、強制類型變數、javascript線程實現、完美OO模型、基於dom id的事件系統實現、dom元素的“隨動”實現、進階托拽、sorted grid控制項、tree grid控制項等等。
jsLINB架構圖
變數類型檢測
強制類型變數
javascript線程實現
36位guid
基於dom id的事件系統實現
dom元素的“隨動”實現
基本拖拽
限制拖拽
拖拽任何domnode
網格拖拽
停靠拖拽
多handle拖拽
表徵圖代理拖拽
多目標drop
快速html產生
DOM控制封裝
基於線程的特效
直接調用
完美OO實現
Treebar控制項
sorted grid控制項
tree grid控制項
window控制項