資源描述:
《幾個web前端開發(fā)框架的比較》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、原文在我的博客中,歡迎大家來訪交流http://chrisx.javaeye.com/blog/697596強(qiáng)調(diào)一下,這篇日志主要還是針對想學(xué)前端開發(fā)的新朋友寫的,不是說我有什么獨(dú)特見解,而是比較客觀的狀態(tài),就各種框架的異同和應(yīng)用場合,需要注意的地方做簡單描述,不做具體深入分析,有的地方比較抽象,對于抽象之處大家可以到網(wǎng)上或各大高手博客中深入學(xué)習(xí),當(dāng)然也可以與我繼續(xù)探討。一直以來對Web前端開發(fā)興趣頗深,用過一些框架產(chǎn)品。在JavaEye上看到一些剛接觸前端開發(fā)朋友的疑問,猶豫這些產(chǎn)品的前景利弊,不知從何入手。想把自己的一點經(jīng)驗分享給大
2、家,如有不到位之處請一起來糾正。jQuery1.絕對的萬金油,核心js只有50K,占用帶寬小,門戶網(wǎng)站、管理系統(tǒng),用在哪都可以。2.jQuery是對js底層dom操作封裝最薄的一個框架,沒有大量的專有對象,多為提供函數(shù)進(jìn)行dom操作。準(zhǔn)確的說,它不是偏重于富客戶端的框架,而是側(cè)重于對jsdom編程。下面幾種才是完整的富客戶端的框架。3.我認(rèn)為它最大的三個亮點,一是支持CSS3的大量選擇符,想定位或選擇一個html元素簡直輕而易舉。二是靈活便捷的Ajax請求和回調(diào)操作。三是事件綁定功能,內(nèi)部封裝了很多事件,想統(tǒng)一為一個頁面上的一些元素添加
3、事件很方便,這也提高了復(fù)用性和可維護(hù)性,避免了頁面中出現(xiàn)大量的html屬性。合理的編碼可以使html與js,css分離開,便于維護(hù)。4.此外它也封裝了很多常用的操作,例如節(jié)點的添加刪除、常用的動畫效果、邏輯判斷比較等等。避免了直接使用domapi進(jìn)行繁瑣的操作。5.本身提供了可擴(kuò)展的函數(shù),可以自己編寫插件與核心jQuery對象進(jìn)行集成使用。這也是常用的手段,只要你理解js面向?qū)ο缶幊?,熟悉jQueryAPI,就能寫出很多定制的插件,復(fù)用在各種地方。6.至于jQueryUI,與其他框架不一樣的地方在于,它很少用js去生成html,而是把現(xiàn)
4、有的html通過jQueryUI的API加工成想要的效果,關(guān)于這點是好是壞,我覺得就是見仁見智的問題了,沒有必要爭論什么。7.新生的jQueryEasyUI不錯。8.如果今后的更新都保持現(xiàn)在這種模式,我認(rèn)為它的前景很樂觀,什么時候javascript完蛋了才輪到它玩完。ExtJS1.一整套帶有UI的js庫,封裝得很多,很厚,核心js就600多K,這么大的東西門戶網(wǎng)站當(dāng)然就別想了,里面的效果當(dāng)然也不會運(yùn)用到門戶網(wǎng)站,所以它是專門為管理系統(tǒng)而生的。因為局域網(wǎng)不會有帶寬問題。2.它與jQuery不同,基本上是純用js來生成html的,頁面里只
5、需引入各個ExtJS庫和你自己寫的js,不會出現(xiàn)很多html內(nèi)容,body里基本沒什么。所以優(yōu)化就顯得重要了,不然會嚴(yán)重浪費(fèi)資源。3.UI就不說了,大家都認(rèn)可,本來就是為UI而生,它可以做出來桌面級程序的效果。一般來說,一個管理系統(tǒng)的項目如果用Ext,基本就從始至終都是Ext做了,不會像jQuery那樣,哪想要了就加在哪,很隨意。Ext更像一個整體(雖然它也可以拆開用,不過麻煩,不建議)。4.提供了對其他js框架的適配,像對jQuery,prototype等。沒實際應(yīng)用過,就不說了。5.理解js面向?qū)ο缶幊淘趀xt中很重要,如果你覺得用
6、jQuery時了解簡單的dom和css即可,那你在這就吃大虧了,Ext處處離不開對象的概念。6.Ext的UI開發(fā)類似C#,有很多控件。不同的是,你要全部自己手寫,所以開發(fā)量較大?,F(xiàn)在雖然有ExtDesigner可視化工具,但其效果并不很好,生成的代碼有的往往不是想要的,不易維護(hù),真做起來還是自己寫更方便。7.團(tuán)隊開發(fā)時,必須保證做UI的人每人都會Ext,而且深入應(yīng)用過,因為Ext項目是整體,不適于參雜html替代。8.Ext項目在IE系列瀏覽器上不可用,相當(dāng)卡,我想這不是Ext本身的問題,所謂內(nèi)存泄露等問題現(xiàn)在早已解決了,而且不是關(guān)鍵所
7、在。我開很多網(wǎng)頁同時用IE8看jQuery.net官網(wǎng)時有時也會卡,試想他們官網(wǎng)肯定做到很好的優(yōu)化了吧,jQuery既是如此,何況Ext。反觀其他瀏覽器,F(xiàn)ireFox,Chrome等瀏覽Ext項目都很流暢,所以應(yīng)該是瀏覽器對js解析不同造成的。9.版權(quán)問題,Ext運(yùn)用在商業(yè)項目中是收費(fèi)的。Flex?[自己也是在學(xué)習(xí)中,不敢妄言,以后深入應(yīng)用后再做補(bǔ)充]1.Adobe平臺的,基于ActionScript實現(xiàn),用在哪都行,但偏重于內(nèi)網(wǎng)管理系統(tǒng),用在門戶網(wǎng)站就相當(dāng)于在線玩Flash游戲,loading...2.與Ext不同,它有健壯的可視化
8、開發(fā)工具FlashBuilder,可以同C#一樣進(jìn)行拖拽布局,生成一種xml,也便于維護(hù)。3.編譯后生成swf文件直接嵌入html即可,提高安全性,瀏覽時同flash,需要flashplayer。4.與Ex