(轉載)
2007年6月項目準備開始了,剛來到一個新的項目組,什么都是新的,除了我自己。
需要一個新的框架來開發項目,香港的同事決定使用Dojo,DWR, 我開始學習使用dojo,時間很短,但是我還是基本上熟悉了dojo的基本控件和架構。在此基礎上搭建起了項目的基本框架。這是一個單頁面,基于ajax和dojo widget的系統,一切都那么的新奇,又充滿挑戰,但是既然dojo有這么多后臺,又有香港同事的推薦,我顯得自信滿滿。
框架搭建的同事,也開始后了緊鑼密鼓的招兵買馬,一起都像是從零開始。陸陸續續,招了5個程序員和一個測試員。開始了整個項目的快速開發,由于需求由香港負責,而且需求做的比較細致,基本上問題很少。Dojo 卻是麻煩不斷。
首先的一個壞消息是當我們做完了幾乎全部300個頁面的時候,dojo宣布0.43不在得到支持,取而代之是完全不同的dojo0.9。 而且dojo0.9 還不是穩定的版本,問題多多,讓我們騎虎難下,最后還是決定按兵不動。 隨之而來,是dojo1.0,dojo1.1 的陸續發布,但是一直都無法讓我看到希望的曙光。 與之相對的是ext在國內的廣泛使用和熱烈追捧。
Dojo 的控件有很多奇怪的地方,日期選擇控件的行為非常怪異,與國內的使用習慣很不相同。而且樣式極其丑陋,當字體放大縮小的時候更是丑陋。顯示的格式和保存的格式需要分別指定。我們修改了大量的代碼。
dojo 的下拉框也被用戶投訴,過濾之后一定要再選擇一次或者按回車才能選定結果,前臺值和后臺值分開操作也帶來很多不變。
dojo 的驗證文本框顏色現實有bug,我們不得不修改代碼
dojo的對話框也有問題,對話框中無法在彈出對話框。對話框的操作和控制很不靈活。
js代碼不利于管理,容易發生命名沖突。
致命的問題發生在項目的后期,在客戶的系統進行測試時發現。dojo的性能非常差,在賽揚2G的電腦上,一個頁面顯示的時間竟然需要17秒。簡直就是噩夢。
另外使用dojo的對話框時出現cpu占用100%而且一直不回落下來。
頁面載入完成的時候,它有將整個頁面重新刷新一次,又需要花費額外的5到8s時間,不僅花費更多的時間,而且嚴重影響客戶體驗。
還有開發過程中碰到的無數問題,雖然一個一個被解決,但是無疑是一次一次痛苦的煎熬。
最后,在性能面前,我被dojo徹底打敗,如此的速度是任何客戶都無法忍受的,客戶不可能為了這個系統全部升級電腦cpu。而且還有很多未知的問題可能還沒有被發覺,不如內存泄露,可能導致資源耗盡,內存耗盡。cpu 的占用可能在使用時間長了之后越來越高,等等,這些都是我擔心的問題。
使用Ajax或者說Rich client,一定要謹慎啊。使用新的技術和框架,一定要謹慎,這是我的教訓,希望給同行們一個參考。