怎么選擇Javascript框架(Javascript Framework)
Ajax的興起,給 Javascript帶來了新的生機(jī),大量的javascript框架(Javascript Framework)層出不窮,一些框架來至于開發(fā)人員項目經(jīng)驗的總結(jié)和提煉,也有一些框架來至于商業(yè)公司,同時以開源和商業(yè)兩種方式發(fā)布。借助這些框 架,可以大大加速Ajax項目的開發(fā)速度,但同時也面臨不同的學(xué)習(xí)曲線,以及架構(gòu)擴(kuò)展性等等問題。如何選擇Javascript框架,成為開發(fā)人員和架構(gòu) 師頭痛的一個問題。如果你正面臨這樣的問題,希望下面的幾個建議對你在選擇javascript框架上會有所幫助。
你的項目需求是什么
首先要問自己這是一個什么項目,具體的需求是什么,是一個普通類型的網(wǎng)站還是一個在線的web應(yīng)用程序,是否需要處理大量的鍵盤和鼠標(biāo)事件,是否需要給用戶 各類高級的ajax特性,還是說只要實現(xiàn)一個簡單的異步頁面刷新和一些簡單dom操作,如果是后者,則可以選擇一個相對簡單的javascript框架, 封裝基本的xmlhttprequest操作和dom操作就足夠了。
瀏覽器的支持情況
不同的框架兼容的瀏覽器會有所不同,尤其是一些高級的javascript框架,對低版本的瀏覽器都不支持,還有一些框架只支持ie和firefox,對其 他瀏覽器如opera、safari不支持。所以在框架的選擇上還要考慮到系統(tǒng)的目標(biāo)用戶,如果目標(biāo)用戶都只使用ie6.0以上瀏覽器,那么在框架的選擇 上余地就更大了。
框架后面是否有一個核心的開發(fā)團(tuán)隊
很多框架往往都是個人在業(yè)務(wù)時間開發(fā)的,隨時可能停止更新,而如果后面有一個團(tuán)隊,則可以在一定程度上保準(zhǔn)代碼的更新,對bug和一些問題的及時響應(yīng),同時在代碼質(zhì)量上也相對有保準(zhǔn)。
框架的成熟度
如果一個新的框架剛剛發(fā)布,使用的人往往不多,如果你貿(mào)然采用,在使用過程中遇到問題,可能要找個能幫你解決問題的人或者在網(wǎng)上找資料都顯的很難。所以在這方面也要有所考慮。
框架的發(fā)布更新頻率
一個框架有很高的發(fā)布更新頻率說明新的功能在不斷加入或者bug被fix的速度很快,反之一個框架半年都不出一個版本,基本可以說明這個框架已經(jīng)不被開發(fā)者重視,很難得到新的發(fā)展。
文檔的友好性
一個框架尤其是相對比較復(fù)雜的框架,如果沒有充分和友好的文檔,學(xué)習(xí)曲線會比較高,使用者在使用過程中往往需要通過閱讀代碼和其他外部的文章來學(xué)習(xí)怎么使用和解決一些問題。所以文檔也是很重要的一個因素。
是否有個活躍的社區(qū)
一些成功的開源框架背后往往有一個社區(qū)在支撐,大家在里面交流使用經(jīng)驗,互相幫助解決使用過程中遇到的問題。任何問題,只要在這類社區(qū)中尋求幫助,往往很快就可以得到他人的幫助。這樣的框架,即使一開始不是很成熟,也會很快發(fā)展起來。
框架的擴(kuò)展性
在 實際的項目過程中,往往一個特定的框架是很難直接滿足你的所有需求的,這就要求你需要去做一些定制和擴(kuò)展的工作,如果一個框架沒有很好的擴(kuò)展性,則你可能 在項目后期為了實現(xiàn)某個特定的需求,不得不采用另一個新的框架,大大加大了項目的成本。所以選擇一個有很好擴(kuò)展性,如支持plugin等機(jī)制的框架,對你 今后系統(tǒng)的擴(kuò)展會有很大的幫助。
性能和網(wǎng)絡(luò)環(huán)境
不同的系統(tǒng)在性能和功能的側(cè)重上 會有所不同,比如一個基于互聯(lián)網(wǎng)的項目,可能考慮更多的是要求在保準(zhǔn)性能的前提下,再來講功能,很多高級的javascript框架往往在性能上不能讓人 滿意,一部分原因是封裝了太多功能,導(dǎo)致js文件會非常大,在互聯(lián)網(wǎng)環(huán)境下,下載這個js文件就會耗去不少時間,還有就是為了保準(zhǔn)如框架的擴(kuò)展性,往往做 了多層封裝和抽象,在某種程度上其實是以犧牲部分性能為代價的。所以這樣的框架可能更適合一些intranet內(nèi)部的項目,而不是基于互聯(lián)網(wǎng)的項目。
相關(guān)文章
下載網(wǎng)站打開頁面后間隔多少時間才顯示下載鏈接地址的代碼
有時候可能為了一些更好的廣告效果等原因,需要讓用戶等待一段時間以后,再顯示真實下載地址代碼,有利于緩解服務(wù)器壓力。2010-04-04
javascript之對系統(tǒng)的toFixed()方法的修正
javascript之對系統(tǒng)的toFixed()方法的修正...2007-05-05
用headjs來管理和加載js 提高網(wǎng)站加載速度
JS高級調(diào)試技巧:捕獲和分析 JavaScript Error詳解
js獲取數(shù)組最后一位元素的五種方法及執(zhí)行效率對比
JS兼容瀏覽器的導(dǎo)出Excel(CSV)文件的方法
js中Number數(shù)字?jǐn)?shù)值運(yùn)算后值不對的解決方法

