AJAX框架的經驗介紹
AJAX是WEB2.0的基石,現在網上流行幾種開源的AJAX框架,比如:jQuery,Mootools,Dojo,Ext JS等等。
讓我們來看看選擇AJAX框架的基礎:
◆你的項目需求(即你需要哪些特性,例如是否要求做出精美的界面、特效或其它功能)
◆是否支持A等級的瀏覽器(IE, Firefox等)?
◆文檔的質量:是否完善(包含教程,API,代碼示例等)
◆框架的可擴展性如何?為框架寫插件容易嗎?
◆你是否喜歡它的API的風格?
◆能大多程度上統一你的JavaScript代碼的風格?
◆框架大小(太大的框架導致用戶下載時間的延長)
◆框架是否強迫你改變寫HTML的方式(Dojo就是這樣)?
◆代碼執行速度:性能如何?
◆代碼是否為模塊化(Mootools為高度模塊化)?代碼可重用性如何?
Tacos類包項目為Tapestry Web框架提供一些高性能的組件,同時也為在頁面或自己組件中使用的AJAX框架(它當前支持的框架主要是dojo但也支持Prototype,script.aculo.us ,Rico)提供服務端Java支持。
HTMLi - 100% XSL AJAX框架,可與Java,ASP,PHP等集成使用。可自由擴展與定制。支持多種CSS樣式。HTMLi提供了一些我們經常要用到的AJAX UI組件如:datepicker、Menu Bar、Progress Bar、Splitter、Status Bar、TabPane、Tree、windows等。
jMaki是SUN支持的一個AJAX框架。這個項目的是讓Java開發人員在其基于Java的應用程序中(不管是JSP標簽庫還是JSF組件)都能使用AJAX技術。jMaki使用了Java與JavaScript中最優秀的部分以此來提供一些Rich AJAX style widgets。jMaki當前提供的bootstrap widget是來自Dojo,Scriptaculus,Yahoo UI Widgets,Spry,DHTML Goodies,和Google等組件庫。jMaki提供為這些widget組件庫提供了一個公共接口以便讓你可以在同一頁面中一起使用這些組件庫。如果你有興趣利用jMaki項目來快速開發Web應用程序,可以使用NetBeans 5.5的jMaki插件。這個插件可以直接把jMaki組件拖放到JSP頁面中。
BZByte EZAjax是一個開源的Ajax Web框架。BZByte Ajax框架采用服務器端的Java來創建DOM而不是通過web瀏覽器的JavaScript。該框架的所有更新都是GUI驅動,所以無需擔心暴露應用程序的代碼和遠程接口。GUI更新快速并且不依賴終端用戶計算機的快慢。
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
Web Remoting - DWR vs Buffalo
DWR和Buffalo都是Web Remoting框架,區別在于:
DWR使用自定義的簡單文本協議,而Buffalo使用burlap協議。因此Buffalo解析大數據量可能會比較慢,然而可以適用于多種服務器端和客戶端,并且burlap協議的完整性和支持的數據類型更加豐富
Buffalo基于prototype,如果你的AJAX應用也是基于prototype,那么可以減少重復加載prototype的帶寬,并且獲得相當一致的編程概念
DWR的服務器端實現要比Buffalo完善一些
DWR更加通用一些,用戶比較廣,而Buffalo是國內的Michael寫的,用戶使用比較少(名氣較小)
建議使用buffalo,相對更加易用,然而服務器端功能有待完善
JavaScript Component Library - prototype vs qooxdoo vs dojo vs YULprototype是一個非常優雅的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的支持,缺點是庫目前還是不是很全,功能也不強大。
【編輯推薦】