目前來看,JS框架以及一些開發(fā)包和庫類有如下幾個:Dojo 、Scriptaculous 、Prototype 、yui-ext 、Mochikit、mootools 、moo.fx 、jQuery。
Dojo (JS library and UI component ):
Dojo是目前最為強大的j s框架,它在自己的Wiki上給自己下了一個定義,dojo是一個用JavaScript編寫的開源的DHTML工具箱。dojo很想做一個“大一統(tǒng)”的 工具箱,不僅僅是瀏覽器層面的,野心還是很大的。Dojo包括ajax, browser, event, widget等跨瀏覽器API,包括了JS本身的語言擴展,以及各個方面的工具類庫,和比較完善的UI組件庫,也被廣泛 應(yīng)用在很多項目中,他的UI組件的特點是通過給html標(biāo)簽增加tag的方式進行擴展,而不是通過寫JS來生成,dojo的API模仿Java類庫的組織 方式。 用dojo寫Web OS可謂非常方便。dojo現(xiàn)在已經(jīng)4.0了,dojo強大的地方在于界面和特效的封裝,可以讓開發(fā)者快速構(gòu)建一些兼容標(biāo)準(zhǔn)的界面。
優(yōu)點:庫相當(dāng)完善,發(fā)展時間也比較長,功能強大,據(jù)說利用dojo的io.bind()可以實現(xiàn)comet,看見其功能強大非一般,得到IBM和SUN的支持。
缺點:文件體積比較大,200多KB,初次下載相當(dāng)慢,此外,dojo的類庫使用顯得不是那么易用,j s語法增強方面不如prototype。
Prototype (JS OO library):
是一個非常優(yōu)雅的JS庫,定義了JS的面向?qū)ο髷U展,DOM操作API,事件等等,以prototype為核心,形成了一個外圍的各種各樣 的JS擴展庫,是相當(dāng)有前途的JS底層框架,值得推薦,感覺也是現(xiàn)實中應(yīng)用最廣的庫類(RoR集成的AJAX JS庫),之上還有 Scriptaculous 實現(xiàn)一些JS組件功能和效果。
優(yōu)點:基本底層,易學(xué)易用,甚至是其他一些js特效開發(fā)包的底層,體積算是最小的了。
缺點:如果說缺點,可能就是功能是他的弱項
Scriptaculous (JS UI component based on prototype):
Scriptaculous是基于prototype.js框架的JS效果。包含了6個js文件,不同的文件對應(yīng)不同的js效果,所以說,如果底層用 prototype的話,做js效果用Scriptaculous那是再合適不過的了,連大名鼎鼎的digg都在用他。
優(yōu)點:基于prototype是最大的優(yōu)點,由于使用prototype的廣泛性,無疑對用戶書錦上添花,并且在《ajax in action》中就拿Scriptaculous來講述js效果。
缺點:剛剛興起,需要時間的磨練。
yui-ext (JS UI component):
基于Yahoo UI的擴展包yui-ext是具有CS風(fēng)格的Web用戶界面組件 能實現(xiàn)復(fù)雜的Layout布局,界面效果可以和backbase媲美,而且使用純javascript代碼開發(fā)。真正的可編輯的表格Edit Grid,支持XML和Json數(shù)據(jù)類型,直接可以遷入grid。許多組件實現(xiàn)了對數(shù)據(jù)源的支持,例如動態(tài)的布局,可編輯的表格控件,動態(tài)加載的Tree 控件、動態(tài)拖拽效果等等。1.0 beta版開始同Jquery合作,推出基于jQuery的Ext 1.0,提供了更多有趣的功能。
優(yōu)點:結(jié)構(gòu)化,類似于java的結(jié)構(gòu),清晰明了,底層用到了Jquery的一些函數(shù),使整合使用有了選擇,最重要的一點是界面太讓讓人震撼了。
缺點:太過復(fù)雜,整個界面的構(gòu)造過于復(fù)雜。
Mochikit :
MochiKit自稱為一個輕量級的js框架。MochiKit 主要受到 Python 和 Python 標(biāo)準(zhǔn)庫提供的很多便利之處的啟發(fā),另外還緩解了瀏覽器版本之間的不一致性。其中的 MochiKit.DOM 尤其方便,能夠以比原始 JavaScript 更友好的方式處理 DOM 對象。MochiKit.DOM 大部分都是針對 XHTML 文檔定制的,如果與 MochiKit 和 Ajax 結(jié)合在一起,使用 XHTML 包裝的微格式尤其方便。Mochikit可以直接對字符串或者數(shù)字格式化輸出,比較實用和方便。它還有自己的 js 代碼解釋器。
優(yōu)點:MochiKit.DOM這部分很實用,簡介也是很突出的。
缺點:輕量級的缺點。
mootools :
MooTools是一個簡潔,模塊化,面向?qū)ο蟮腏avaScript框架。它能夠幫助你更快,更簡單地編寫可擴展和兼容性強的JavaScript代碼。Mootools跟prototypejs相類似,語法幾乎一樣。但它提供的功能要比prototypejs多,而且更強大。比如增加了動畫特效、拖放操作等等。
優(yōu)點:可以定制自己所需要的功能,可以說是prototypejs的增強版。
缺點:不大不小,具體應(yīng)用具體分析。
moo.fx :
moo.fx是一個超級輕量級的javascript特效庫(7k),能夠與prototype.js或mootools框架一起使用。它非常快、易于使用、跨瀏覽器、符合標(biāo)準(zhǔn),提供控制和修改任何HTML元素的CSS屬性,包括顏色。它內(nèi)置檢查器能夠防止用戶通過多次或瘋狂點擊來破壞效果。moo.fx整體采用模塊化設(shè)計,所以可以在它的基礎(chǔ)上開發(fā)你需要的任何特效。
優(yōu)點:小塊頭有大能耐。
缺點:這么小了,已經(jīng)不錯了。
jQuery:
jQuery是一款同prototype一樣優(yōu)秀js開發(fā)庫類,特別是對css和XPath的支持,使我們寫js變得更加方便!如果你不是個js高手又想寫出優(yōu)秀的js效果,jQuery可以幫你達(dá)到目的!并且簡介的語法和高的效率一直是jQuery追求的目標(biāo)。
優(yōu)點:注重簡介和高效,js效果有yui-ext的選擇,因為yui-ext 重用了很多jQuery的函數(shù)。
缺點:據(jù)說太嫩,歷史不悠久。