1. 程式人生 > >淺談我對幾個Web前端開發框架的比較

淺談我對幾個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面向物件程式設計我一直在提,其實並不難理解,關於這點應該學習下,很有必要。它涉及到程式碼複用、功能擴充套件、物件繼承、閉包、優化等很多問題,能省去不少編碼,便於維護,還能不改變框架原始碼而實現不同的功能。 


希望能給剛走進前端開發的朋友一點幫助。 

相關推薦

Web前端開發框架比較

強調一下,這篇日誌主要還是針對想學前端開發的新朋友寫的,不是說我有什麼獨特見解,而是比較客觀的狀態,就各種框架的異同和應用場合,需要注意的地方做簡單描述,不做具體深入分析,有的地方比較抽象,對於抽象之處大家可以到網上或各大高手部落格中深入學習,當然也可以與我繼續探討。  一

類的基礎建構函式

通過例子來介紹下C++類的幾個基礎建構函式。   我們以一個C型別的字串為例: class myString { public: myString(const char* rhs = 0); // 預設(含參)建構函式 myStri

類的基礎構造函數

his 發生 cout tro 構造 spa 默認構造函數 字符 ima 通過例子來介紹下C++類的幾個基礎構造函數。 我們以一個C類型的字符串為例: class myString { public: myString(const char* r

spring框架的理解

    總所周知,java界乃由五大傳統框架:1.核心業務層框架(地位不可動搖)spring,2.控制層框架:spring MVC與struts2, 持久層框架:Mybatis,hibernate。    先從spring說起吧,瞭解過spring的同學都知道,spring的

java.lang.reflect包中的動態代理物件Proxy的理解

首先,動態代理物件是一個物件,被它代理的也是一個物件,而不是類! 一般而言,為了增強某個物件的功能,就建立該物件的動態代理物件,有點類似於包裝。 Proxy的最重要的方法是Proxy.newProxyInstance(loader, interfaces, h); 預設動態代理物件是一個Object型別

李航博士的《機器學習的理解》--文章部分解讀

我現在的目標便只有兩個:1.保護好自己想保護的人(要不斷增強自己的實力)    2.想解開這個世界的各種規則(比如大腦的思維是如何形成的之類的) 如果類比於修仙小說中的三千大道的話,那麼這就是我的道,我所需要做的便是讓它不斷的迎接各種磨鍊 最近考試,時間少了些。

DDD領域驅動設計的理解

從遇到問題開始 當人們要做一個軟體系統時,一般總是因為遇到了什麼問題,然後希望通過一個軟體系統來解決。 比如,我是一家企業,然後我覺得我現線上下銷售自己的產品還不夠,我希望能夠在線上也能銷售自己的產品。所以,自然而然就想到要做一個普通電商系統,用於實現線上銷售自己企業產品的目的。 再比如,我是一家網際網

常用的web攻擊方式以及解決辦法

        身在網際網路的時候,web在給我們帶來便利的同時,有些人也在盯著這些便利,因此出現了攻擊網站的現象。所以我們在開發的時候,要注意這些容易被攻擊的地方,以及做好防禦的措施,下面將介紹一些這些常見的攻擊手段以及解決辦法。        1.SQL注入      

常用的web攻擊方式

一、Dos攻擊(Denial of Service attack)   是一種針對伺服器的能夠讓伺服器呈現靜止狀態的攻擊方式。有時候也加服務停止攻擊或拒絕服務攻擊。其原理就是傳送大量的合法請求到伺服器,伺服器無法分辨這些請求是正常請求還是攻擊請求,所以都會照單全收。海量的請求會造成伺服器停止工作或拒絕服務的

協程的理解

一句話說明什麼是執行緒:協程是一種使用者態的輕量級執行緒。一句話並不能完全概括協程的全部,但是起碼能讓我們對協程這個概念有一個基本的印象。從硬體發展來看,從最初的單核單CPU,到單核多CPU,多核多CPU,似乎已經到了極限了,但是單核CPU效能卻還在不斷提升。server端也

的IT夢——web前端開發之HTML,CSS(一)

jpg 標記語言 方便 add body 前端 input cti 列表 HTML HTML全稱HyperText Markup Language(超文本標記語言) 標簽成對出現 <!DOCTYPE html> 文檔類型定義 < > 標

web前端開發框架有哪些

 各種開發框架層出不窮,各有千秋。哪些才是最適合開發者的呢?以下是前端框架的一些集錦,都非常優秀,前端框架好不好,看如何組合使用,這篇文章收集了目前網際網路最具有代表性web 前端開發工具和框架,這是一個非常值得收藏的工具列表,從功能全面的 IDE 到美觀、充滿異國情調的小框架,希望你有所收穫。

2018最新的web前端開發框架排行總結

如果你是一個前端開發人員,當你在開發新專案時,想必一定被人問過“你用的是什麼框架?”進而開展各種前端技術話題。但是對於初入門的前端小白來說,遇到這樣的問題估計會產生一系列的疑問“前端框架是什麼意思?前端框架有什麼用?前端框架有哪些... ” 簡單來說,前端框架就是已經搭

初學者一定要認識Web前端開發框架--Boostrap

Boostrap絕對是目前最流行用得最廣泛的一款框架。它是一套優美,直觀並且給力的web設計工具包,可以用來開發跨瀏覽器相容並且美觀大氣的頁面。它提供了很多流行的樣式簡潔的UI元件,柵格系統以及一些常用的JavaScript外掛。Bootstrap是用動態語言LESS寫的,主

java web 前端開發框架和流程

1  通常 Java Web 開發框架 舉個例子,對於廣告系統的來說, 我們先不管一些job,CACHE,config  ... 這些優化,些框架和分層可以是這樣的, MVC的技術選型: V: FreeMarker    vs    JSP / Veloci

web前端開發技術之HTML5 智能表單的理解

提示 goods 表單 加載完成 空格 日期和時間 url 顯示 指向 Html5新增input的form屬性,用於指向特定form表單的id,實現input無需放在form標簽之中,即可通過表單進行提交。 <FORM id=xinzeng> … </FO

2018年web前端經典面試題總結,你能做

對程式設計師小哥哥小姐姐來說,很多時候差的不是技術,卻過不了面試那一關。這時候我們就需要總結分析一下面試題目了,揣摩公司與hr的心理及需求,有時候我們忽略的小問題就是決定能不能拿到offer的重要因素,希望大家都可以找到自己心儀的工作,從容應對面試~ 1、webpack怎麼引入第三方的庫?

web前端開發

非主流 寫代碼 人員 使用 actions css3 認識 ont 高效 我個人認為前端攻城獅其實就是編程技術人員,用一句話來形容“比UI設計懂技術,比技術人員更懂交互”,當然也有人說前端工程師是工程師中的設計師,是設計師中的工程師。既然是編程工作,那就不會做一輩子,畢竟太

聽說優秀的Web前端開發工程師都會用這工具!

it行業 大小 很多 javascrip 時間 並不是 found 調試器 自動 Web前端入行門檻低、薪資待遇高、市場需求大,是很多人進入IT行業的首選語言。工欲善其身必先利器,作為初學前端行業的小白,如果知道一些好用的軟件工具可以幫助他們更好的工作。下面,就給大家分享W

初學Web前端開發,學會這必殺技,薪資爆表!

曾經的我怎麼也想不到,web前端開領域能發展到今天的樣子,但是對於很多想轉行學習的初學者,你首先需要先掌握必備的基礎知識,以及獨立