看了幾篇中英文的AJAX庫/框架比較文章,為方便選擇使用,特歸納如下:
首先,要在兩個(gè)類別中選擇,一個(gè)是編譯類,一個(gè)是非編譯類別。
Echo2/GWT是將JAVA代碼編譯成JAVASCRIPT,乍看很方便,不用掌握J(rèn)S也能做出炫目界面。但這只適于不會(huì)或者不想了解JS的情況,對(duì)于還是想完全控制和定制界面的項(xiàng)目就不適合。
另外,有一種觀點(diǎn)認(rèn)為JAVA->JS轉(zhuǎn)換是一種低級(jí)語言向高級(jí)語言轉(zhuǎn)換,本身沒有意義。有點(diǎn)像去學(xué)匯編,然后再找個(gè)工具把匯編語言代碼轉(zhuǎn)換成C代碼來用。我雖然沒完全想通這個(gè)觀點(diǎn),不過,我一直用C/C++,這幾年才逐漸發(fā)現(xiàn)JAVA確實(shí)是一種進(jìn)化。沒準(zhǔn)別人說的是對(duì)的呢?
在Echo2和GWT中,GWT大部分工作是在客戶端,盡量少跟SERVER打交道,適合大型網(wǎng)站運(yùn)用;ECHO2信奉“用到才加載”的信條,所以會(huì)有大量向SERVER的訪問,適合企業(yè)應(yīng)用。另外,個(gè)人覺得ECHO2是個(gè)更全面的的一站式框架,界面也非常炫。但它的開發(fā)工具要收費(fèi)。
再談非編譯類別,它們包括DOJO、PROTOTYPE、JQEURY,下面一一介紹:
先說PROTOTYPE,它比較輕量極,能讓你的代碼更加簡(jiǎn)化。最經(jīng)典莫過于“美圓函數(shù)”:
document.getElementById(’elementid’) 變成$(’elementid’)
它加強(qiáng)了JS語言的可開發(fā)性,降低了學(xué)習(xí)JS的門檻。
DOJO最吸引人的是它的事件系統(tǒng)和豐富的可定制組件。它可以用形如下面的語句為各種HTML元素加入事件:
dojo.event.connect(someNode, "onclick", doStuff);
正由于DOJO提供了強(qiáng)大功能,它分成了許多包,可以分別包含使用。
JQUERY也提供了美圓函數(shù),它的插件系統(tǒng)也提供象DOJO的組件,但它沒有PROTOTYPE那樣簡(jiǎn)潔,也沒有DOJO這么多的組件供使用,但它兼收兩家優(yōu)點(diǎn),并且個(gè)頭不大,文檔也算完整,所以說它介乎于前述兩者之間。
所以,如果你需要非常完整的工具組件請(qǐng)用DOJO,如果你想優(yōu)化你的JS代碼,提高書寫技巧請(qǐng)用PROTOTYPE,如果你想兩者兼顧就用JQUERY。