任何一種技術(shù)框架,都不能為了掌握它而掌握,,必然是有一些其它框架無法比擬的特性,才會吸引我們?nèi)パ芯俊?br> 說起javascript,,其實(shí)也零零散散寫了六七年了:起初是使用alert,、setTimeout之類的函數(shù)實(shí)現(xiàn)簡單的頁面特效,那時還可以肆無忌憚的使用document.all等對象,;后來隨著03,、04年firefox和xhtml的迅速推廣,客觀上要求程序員要具備書寫標(biāo)準(zhǔn)的跨平臺的腳本的能力,,于是開始更多的采用DOM技術(shù)編寫javascript,;緊接著就是05年,ajax風(fēng)潮席卷了整個IT界,,它不但把javascript的地位提升到了很高的層次,,還促進(jìn)了C/S、B/S程序技術(shù)的大融合,,此外,,MVC的思想也深入人心。 由于更多的人力投入到j(luò)avascript陣營中,,催生了很多開源平臺的誕生與繁榮,,如開山鼻祖prototype,以及后來的dojo、jQuery等等,。商業(yè)力量也試圖占領(lǐng)這塊市場,,例如Yahoo的YUI(包括后來的YUI-ext),,Google的GWT等等,。這些開源庫都有各自的特點(diǎn),但始終無法在文檔成熟度,、表現(xiàn)層展現(xiàn)能力等方面達(dá)到整體的高度,。直到今年YUI-ext與jQuery進(jìn)行了整合,并推出了extjs,,才比較好的彌補(bǔ)了這些“短板”,。目前穩(wěn)定版本是1.1.1,2.0 ALPHA也剛剛推出,,預(yù)計(jì)又會有大幅度的提升,。 在工作中使用javascript,無非是要盡可能又快又好的完成PM制定的各項(xiàng)功能特性,,例如進(jìn)行友好的表單驗(yàn)證,,拖動/隱藏界面中的一部分內(nèi)容等等。工期常常是比較緊的,,調(diào)試也相對繁瑣,,且要支持各種主流瀏覽器,那么開發(fā)過程客觀上就要依賴于穩(wěn)定的代碼庫,。我打算使用這兩種庫的主要原因有以下幾點(diǎn):
- jQuery可以徹底實(shí)現(xiàn)JS與HTML的分離,。我們只需要這樣寫:
$(document).ready = function(){
//...
}
就可以代替body標(biāo)簽中的onload。從而所有的JS代碼都可以從HTML中移出,,非常便于維護(hù),。
- extjs的前端展現(xiàn)比較豐富。例如增加一個toolbar,,里面放一個menu,,我們只需要這樣寫:
var dateMenu = new Ext.menu.DateMenu({
handler : function(dp, date){
Ext.Msg.alert('Date Selected', 'You chose ' + date.format('M j, Y'));
}
});
var menu = new Ext.menu.Menu({id: mainMenu, items: [{text: 'Choose a Date', menu: dateMenu}]});
var tb = new Ext.Toolbar('toolbar');
tb.add({text: 'menu', menu: menu});
就可以實(shí)現(xiàn)一個下拉菜單效果,其中有一個功能是選擇日期,。當(dāng)選中一個日期后,,會彈出一個提示框,顯示剛才選中的日期,。
- JS開發(fā)對瀏覽器透明,。
在書寫大部分代碼的時候,無需考慮太多瀏覽器的差異,,例如創(chuàng)建xmlhttp對象,,例如綁定事件,等等。這樣可以把精力真正放到業(yè)務(wù)的實(shí)現(xiàn)上去,。
|