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