關於不同的JavaScript Framework的一點思考

前幾年一直用Dojo做應用開發,也經歷了Dojo的一些大大小小的變化,比如1.6以後採用了AMD模式。應用所限,對於這些變化背後的動機,一直都沒有很深入地去了解。最近半年有機會加入了一個大型應用開發項目,一下子接觸了很多種不同的JavaScript Framework。個人除了Dojo之外,也上手了JQuery和d3。回首以前看過的一些文章對於這些框架優劣的爭論,也有了一點自己的看法。

Dojo最大的特點就是大而全,而且從package大小來看,應該是一直在包容更多的東西進來,比如dijit, dojox。如果想從頭開發一個web應用,那麼用Dojo基本可以包圓了:從基本的頁面元素操作、事件處理,到各種UI控件的使用、定製。而Dojo的缺點也在這裏:package太大,一個項目其他代碼加起來幾M撐死,加入一個Dojo,少說得增加幾十M。對項目的部署來說是一個不小的負擔。當然也可以做build,但也有其缺陷所在。

JQuery小而強大,語法簡潔、直觀。用過$("#test")後,就再也不想用dom.byId("test")了,何況用dom還得require(["dojo/dom"])。更別說JQuery用起CSS Selector時的靈活了。除了頁面元素操作等,一旦要做UI控件,JQuery也遇到了同樣的問題:要渲染一個漂亮的對話框,沒有十個八個js、css文件,實在做不出來。而JQuery沒有AMD機制,就要乖乖得include這些文件了。這樣比起來,Dojo只要在body中設置了相應的class,就可以讓整個應用中的所有UI控件都統一風格,不太需要獨立引入css,卻是更好用了。

d3是專門用於畫圖的JavaScript Framework。倒是和Dojo,JQuery不在一個層面上。如果要比較的話,倒是可以把d3和Dojo Charting,IBM Rave,乃至五花八門的charting framework(Highcharts, Echarts, Flotchart, ...)來比。如果要畫的圖表比較規範,那最好就是選擇Highcharts, Echarts, Flotchart等直接渲染指定圖標類型的Framework。如果想做很多定製,或者要畫的圖表不是規範圖表,那麼d3就比較適合。這兒想說的是,爲了更好的使用d3,用CJS模式對其進行了模塊化設計。


這兒有一篇關於JavaScript模塊化的文章,恰好談到了這些不同的設計模式,可供參考:http://www.javaworld.com/article/2109734/html-css-js/code-in-javascript-the-smart-modular-way.html

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