常見的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:微軟的Ajaxhttp://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控件