Web前端技術比較

一直以來對Web前端開發興趣頗深,用過一些框架產品。在JavaEye上看到一些剛接觸前端開發朋友的疑問,猶豫這些產品的前景利弊,不知從何入手。想把自己的一點經驗分享給大家,如有不到位之處請一起來糾正。

jQuery
1. 絕對的萬金油,核心js只有50K,佔用帶寬小,門戶網站、管理系統,用在哪都可以。
2. jQuery是對js底層dom操作封裝最薄的一個框架,沒有大量的專有對象,多爲提供函數進行dom操作。準確的說,它不是偏重於富客戶端的框架,而是側重於對js dom編程。下面幾種纔是完整的富客戶端的框架。
3. 我認爲它最大的三個亮點,一是支持CSS3的大量選擇符,想定位或選擇一個html元素簡直輕而易舉。二是靈活便捷的Ajax請求和回調操作。三是事件綁定功能,內部封裝了很多事件,想統一爲一個頁面上的一些元素添加事件很方便,這也提高了複用性和可維護性,避免了頁面中出現大量的html屬性。合理的編碼可以使html與js, css分離開,便於維護。
4. 此外它也封裝了很多常用的操作,例如節點的添加刪除、常用的動畫效果、邏輯判斷比較等等。避免了直接使用dom api進行繁瑣的操作。
5. 本身提供了可擴展的函數,可以自己編寫插件與核心jQuery對象進行集成使用。這也是常用的手段,只要你理解js面向對象編程,熟悉jQuery API,就能寫出很多定製的插件,複用在各種地方。
6. 至於jQueryUI,與其他框架不一樣的地方在於,它很少用js去生成html,而是把現有的html通過jQueryUI的API加工成想要的效果,關於這點是好是壞,我覺得就是見仁見智的問題了,沒有必要爭論什麼。
7. 新生的jQuery EasyUI不錯。
8. 如果今後的更新都保持現在這種模式,我認爲它的前景很樂觀,什麼時候javascript完蛋了才輪到它玩完。

ExtJS
1. 一整套帶有UI的js庫,封裝得很多,很厚,核心js就600多K,這麼大的東西門戶網站當然就別想了,裏面的效果當然也不會運用到門戶網站,所以它是專門爲管理系統而生的。因爲局域網不會有帶寬問題。
2. 它與jQuery不同,基本上是純用js來生成html的,頁面裏只需引入各個ExtJS庫和你自己寫的js,不會出現很多html內容,body裏基本沒什麼。所以優化就顯得重要了,不然會嚴重浪費資源。
3. UI就不說了,大家都認可,本來就是爲UI而生,它可以做出來桌面級程序的效果。一般來說,一個管理系統的項目如果用Ext,基本就從始至終都是Ext做了,不會像jQuery那樣,哪想要了就加在哪,很隨意。Ext更像一個整體(雖然它也可以拆開用,不過麻煩,不建議)。
4. 提供了對其他js框架的適配,像對jQuery, prototype等。沒實際應用過,就不說了。
5. 理解js面向對象編程在ext中很重要,如果你覺得用jQuery時瞭解簡單的dom和css即可,那你在這就喫大虧了,Ext處處離不開對象的概念。
6. Ext的UI開發類似C#,有很多控件。不同的是,你要全部自己手寫,所以開發量較大。現在雖然有Ext Designer可視化工具,但其效果並不很好,生成的代碼有的往往不是想要的,不易維護,真做起來還是自己寫更方便。
7. 團隊開發時,必須保證做UI的人每人都會Ext,而且深入應用過,因爲Ext項目是整體,不適於參雜html替代。
8. Ext項目在IE系列瀏覽器上不可用,相當卡,我想這不是Ext本身的問題,所謂內存泄露等問題現在早已解決了,而且不是關鍵所在。我開很多網頁同時用IE8看jQuery.net官網時有時也會卡,試想他們官網肯定做到很好的優化了吧,jQuery既是如此,何況Ext。反觀其他瀏覽器,FireFox, Chrome等瀏覽Ext項目都很流暢,所以應該是瀏覽器對js解析不同造成的。
9. 版權問題,Ext運用在商業項目中是收費的。

Flex  [自己也是在學習中,不敢妄言,以後深入應用後再做補充]
1. Adobe平臺的,基於ActionScript實現,用在哪都行,但偏重於內網管理系統,用在門戶網站就相當於在線玩Flash遊戲,loading...
2. 與Ext不同,它有健壯的可視化開發工具Flash Builder,可以同C#一樣進行拖拽佈局,生成一種xml,也便於維護。
3. 編譯後生成swf文件直接嵌入html即可,提高安全性,瀏覽時同flash,需要flash player。
4. 與Ext相同,也是屬於一個整體,有豐富的控件庫。
5. 這條純屬個人觀點,HTML5不支持插入對象,也就意味着不能插入swf文件,難道Flex就完蛋了?雖然HTML5不支持Flash是客觀事實,但HTML5的統一爲時尚遠,各大瀏覽器對HTML5的支持,Adobe是否會有對策,這些會怎麼樣現在都不好說,HTML5與HTML4並行應該會有很長一段時間,至少Flex在現在是一個名列前茅的好產品,所以我選擇了它。

SilverLight
微軟平臺的,主要是應用在微軟系列的語言中,包括CS與BS架構。同樣,除了jQuery,Asp.net也不適合與以上等框架集成,因爲Asp.net是事件驅動,這些框架都是爲消息驅動而生的,勉強應用只會事倍功半,喪失.net本身的優勢。

js面向對象編程我一直在提,其實並不難理解,關於這點應該學習下,很有必要。它涉及到代碼複用、功能擴展、對象繼承、閉包、優化等很多問題,能省去不少編碼,便於維護,還能不改變框架源代碼而實現不同的功能。

轉至:http://chrisx.javaeye.com/blog/697596

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章