http://blog.csdn.net/luyou3415/article/details/7648196javascript
強調一下,這篇日誌主要仍是針對想學前端開發的新朋友寫的,不是說我有什麼獨特看法,而是比較客觀的狀態,就各類框架的異同和應用場合,須要注意的地方作簡單描述,不作具體深刻分析,有的地方比較抽象,對於抽象之處你們能夠到網上或各大高手博客中深刻學習,固然也能夠與我繼續探討。
一直以來對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自己的優點。
css
基於Jquery的UI組件,用起來仍是至關的方便的,從去年末就開始用了,基本上知足平時的開發。缺點是雖說是開源的,可是代碼通過混淆的,有的時候須要擴展功能的話,很是的頭疼。另外瀏覽器兼容性還不完美。html
官方網站:http://jquery-easyui.wikidot.com/start前端
基於javascript的圖表生成框架,只須要提供json數據和簡單的配置,就能夠生成曲線圖、柱狀圖、餅狀圖等統計圖表。java
官方網站:http://www.jscharts.com/jquery
基於javascript的WEB頁面編輯器,功能很是的強大,社區也很活躍,使用起來方便簡單。web
官方網站:http://tinymce.moxiecode.com/編程
一個很是強大的驗證碼組件,能夠配置不少屬性,使用起來也很簡單,不須要寫代碼就能夠生成不易機器識別的驗證碼。原來項目中驗證碼都是本身寫代碼實現的,自從發現了Kaptcha後,馬上被迷上了。json
官方網站:http://code.google.com/p/kaptcha/api
基於javascript的日曆控件,很是好用,擁有衆多的支持者。
官方網站:http://www.my97.net/ 暫時不能訪問
做者blog:http://www.cnblogs.com/my97/
基於DHTML的下拉菜單,推薦其的理由是能夠跨frame。前一段須要把一個遺留的web系統改的兼容ff,爲了實現跨frame的菜單,最終google到了這個,用起來仍是挺方便的。