其實開源的類庫和框架我們公司用的還是很謹慎的,這次能夠用上dojo我已經心滿意足了。可惜,還是被開源給擺了一道,當我們開發了一大半頁面的時候,dojo 1.0 發佈了,而且改變很大,我們面臨一個選擇,繼續用0.43還是升級到1.0,公司決定先進行一個評估,這個任務就落在我的頭上了。
[b]評估[/b]
站在個人的立場上,我當然是希望能夠升級到1.0,但是設計到進度和時間的安排,這個評估是必不可少的。
通過分析,我發現dojo控件的 Package 和 dojoType 命名全部都變了,但是這個很容易處理,用全局替換(global replace)就可以處理。麻煩一點的就是一些控件的屬性也有變化,慶幸的是這些變化很小。另一方面,就是使用到的dojo函數和變量了,dojo的函數很多,不過因爲我們對dojo的研究還不是很深入,所以並沒有大量的採用,用的多一點的也就是那麼幾個,dojo.byId, dojo.widget.byId, dojo.addOnload。最麻煩的就是曾經使用過一個dojo的scriptScope變量_container_, 這個變量在dojo1.0裏面沒有合適的代替者,通過_container_可以獲得js當前的scriptScope,比如contentPane,這樣的話,類似_container_.addOnLoad(...)的代碼必須改成dojo.widget.byId(widgetId).addOnLoad(...),widgetId在每個頁面都是不同的,有一部分頁面可能是動態的,同樣的,這樣的地方不多。
綜上,這樣的升級還是能夠接受的,可以找一個稍微初級一點的程序員也能夠搞定。