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