確實(shí)是一個(gè)老話題了,很多同行已經(jīng)討論這個(gè)問題很多了.
一直關(guān)注我的朋友會(huì)記得,在Ext 正火的時(shí)候,我推出了一個(gè)以Ext portal為基礎(chǔ),整合struts,spirng,hibernate的開源項(xiàng)目,很多朋友下載,配置,運(yùn)行了這個(gè)項(xiàng)目,并通過各種方式就ext的使用進(jìn)行了溝通.
怎么說呢?寫完第一個(gè)不算完整的FaceYe ext版本后,我自己心里多多少少有些無奈.雖然說FaceYe做成了可配置的類似portal結(jié)構(gòu),但是使用ext做出的portlet離真正的portlet還是有很大距離的.
而最大問題,我覺得不在這里,就我們知道,Ext本身已經(jīng)很臃腫了,使用Ext寫東西,很少會(huì)直接去寫Html,作為我來說,大多工作是通過直接與js腳本來做了,似乎正應(yīng)了很多朋友熱忠的one application one pae,確實(shí),FaceYe可以說在用戶界面上做到了這一點(diǎn),同時(shí)頁面的布局可以隨意改變,頁面上的模塊可以隨意添加,比如從最初的RSS模塊,到后來的圍繞RSS的訂閱等服務(wù), 以為博客等,都可以隨意的去組裝..這個(gè)過程,我所寫的所有html代碼,除了header里面加載進(jìn)來的css/js外,留下的,幾乎只有空空的body了.
一個(gè)朋友看了以后,說:靠,頁面上的東西怎么出來的?
可能很多朋友也會(huì)這么說,隨著我繼續(xù)向下開發(fā),功能越來越多,要加載的東西也越來越多的時(shí)候,我設(shè)計(jì)了另外一個(gè)功能,把所有要加載的 js路徑寫入數(shù)據(jù),當(dāng)需要加載的時(shí)候,再根據(jù)路徑去加載指定的js,到后來,我自己甚至都分不清哪一個(gè)js對(duì)應(yīng)哪一個(gè)功能模塊了.雖然js有說明,有注視,但有時(shí)候我真的要去select數(shù)據(jù)庫了.雖說用大量jsp來完成類似的功能或許也會(huì)出現(xiàn)這樣的問題,但我覺得,混亂,在大量使用js,使用return null這樣的action的時(shí)候,使混亂更加混亂了.
使用Ext帶為的另外一個(gè)問題,是頁面是只留下空空如也的body了,而這不是google這樣的搜索引擎喜歡的,而我們使用Ext做的站點(diǎn),也很難被搜索引擎收錄,做seo,也不容易.看到過一個(gè)朋友使用Ext做的網(wǎng)站,從使用Ext的角度來看,真的是下了很大功夫,可seo,真的很艱難.
所以隨著開發(fā)的不斷深入,我發(fā)現(xiàn),不能繼續(xù)使用Ext進(jìn)行所有的開發(fā)了,至少,不能大量使用Ext進(jìn)行互聯(lián)網(wǎng)應(yīng)用的開發(fā)了.
總的原因
1.Ext體積太大(沒使用GZIP超過153K)
2.大量使用Ext不利于網(wǎng)站做SEO.Ext的各種panel,包括Tab,Grid,Win,Form等等,生成起來很簡單,大多只需要幾句代碼就可以了,可以不使用一句html,就可以生成出來一個(gè)漂亮的布局.雖然工作量少了,頁面看上去漂亮了,可搜索引擎也發(fā)現(xiàn)不了網(wǎng)站了.得不嘗失.
3.兼容.Ext雖然在兼容性方面花了很大功夫,但在某些時(shí)候,還是會(huì)偶爾展現(xiàn)出來一個(gè)意想不到的結(jié)果,令人渧笑皆非.
4.調(diào)試.雖然我們有很多調(diào)試工具可以使用,但有時(shí)候,真的不知道是哪里出了問題,新來開發(fā)的,更是一愁莫展.
所以到了后來,我開始尋找另外一種更為簡單的式式來開發(fā)了.那就是jQuery.jQuery沒有像Ext那里,提供一切你想要的,個(gè)人覺得 ,jQuery更專注于簡化最基礎(chǔ)的開發(fā)工作.所以使用起來,也就感覺更像是使用原始的js進(jìn)行開發(fā)一樣.而頁面上的html結(jié)構(gòu),跟沒使用jQuery以前,沒有太大差別是.這對(duì)于網(wǎng)站開發(fā)來說,我覺得是一件好事情.
從使用Ext進(jìn)行FaceYe的開發(fā),到后來感覺到迷茫,試用YUI,再到選擇jQuery進(jìn)行實(shí)際的工作,一路走來,感覺,真的是愛恨交加.Ext簡化了很多工作,讓開發(fā)更簡潔,更方便,但也帶來了很多麻煩,給我們留下了更小的選擇空間,YUI跟Ext,雖說不像Ext一樣,但使用起來,到處是Ext的影子,似乎像一個(gè)剛剛分手的戀人一樣,使用起來,太多無奈.直到開始使用jQuery,才感覺,又有了當(dāng)初跨入IT行業(yè)的激情.
總之一句話,如果你做WEB,別用Ext,如果你做大的項(xiàng)目,或是壓力較大的項(xiàng)目,最好別全部使用Ext.如果你的項(xiàng)目人員不穩(wěn)定,只是極少數(shù)人懂Ext,別用Ext.
ext的js控制太強(qiáng),給自己的選擇控制的余地就小了.
而且學(xué)習(xí)調(diào)試的成本都不低啊.