原因壹:模塊化和AMD模塊加載機制
隨著web技術的發展,客戶端的javascript越來越復雜,為了更好,更快運行我們的js應用,我們需要模塊化我們的程序。不使用異步加載的日子應該結束了。Dojo toolkit壹直都引以驕傲他們的模塊化設計,使用dojo.require來動態的加載頁面資源。 雖然有壹個跨域選項是異步的餓,缺省的加載javascript資源的方法是同步的。
Dojo已經遷移到了異步加載器上,由Rawld Gill開發,可以方便的異步加載所有資源,很大程度的提高了速度。
原因二:使用dojo/declare來實現Class和擴展性
javascript並不是真正的提供class系統,而Dojo toolkit通過dojo/declare提供了壹個類似class繼承機制。declare在整個框架中都被使用,所以開發人員可以:
剪切或者刪除重復的代碼
使用“混合”方式來在不同class中***享功能
很簡單的擴展已存在的class用來擴展自定義
不同項目中分享模塊代碼
在出現bug的Dojo class中安全的創建混合的class
Dojo的class系統使用原型繼承,允許原型(prototype)被繼承,這樣子class可以像父class壹樣強大。
原因三:基於方面(Aspects)和“方法到方法的事件”
Aspects是高級web開發力最強大和必要的特性。Dojo toolkit提供了很多年這樣的相關功能。允許妳不使用傳統的click,mouseover和keyup來觸發功能。
允能夠讓妳在觸發function A之後或者之前觸發function B 。妳可以將方法鏈接起來,是不是很棒!
原因四:Deferreds和統壹的AJAX傳輸
Deferreds是基於對象的異步操作的表達方式,允許異步操作對象可以方便的從壹個地方傳遞到另外壹個地方。jQuery最近的最重要的添加就是Deferred。很巧合的是,Dojo團隊已經實現了。Dojo toolkit幾年前已經添加了這個特性,使用它來簡化AJAX高級操作,動畫及其其它。
除了最前面這裏的Deferred對象,Dojo也在XMLHTTPRequest之外首次添加了幾個IO處理方法,包括:window.name封裝,AJAX文件上傳的dojo/io/iframe及其其它。那麽什麽時候使用Deferredd對象呢?無論什麽時候只要壹個異步的AJAX操作發生!Deferred對象都會返回XHR請求,dojo/io請求,動畫和其它!
原因五:Dijit UI framework
毫無疑問,Dojo toolkit相比其它框架最大的優勢在於Dijit UI框架。這個和其它工具吹噓的完全不同:
完整,完整的支持本地化
完整的accessiblity
先進的布局組件能夠幫助妳解決100%高度元素,創建自定義的分割和布局修改
內建的表單驗證和強化的用戶體驗
很多主題,最新的叫"claro"
LESS文件自定義主題
非常模塊化的代碼,允許自定義和擴展
原因六:Dojo Mobile
可以這麽說,基本上每壹個web問題,dojo都有壹個解決方案,Dojo toolkit對於移動客戶端的解決方案就是dojox/mobile,這個類庫在我們以前的dojo移動開發文章中我們也牛刀小試了壹把。如果妳想看看dojox/mobile開發的UI界面,請點擊這裏:在線演示,dojox/mobile主要特性如下:
自動探測設備類型
擁有iOS,Andriod,Blackberry和common這四種主題
mobile表單組件
布局組件和面板
支持桌面,允許簡單的debug
原因七:GFX和圖表
CSS動畫是不錯的視覺工具,既是動畫圖片,同時也是靈活和強大的矢量圖形創建和管理工具。最流行的客戶端的矢量圖形生成工具壹直是Raphael JS,但是Dojo toolkit的GFX類庫毫無疑問更將的強大。GFX可以用來配置SVG,VML,Silverlight,Canvas和webGL格式的矢量圖形。提供了壹個健壯的封裝來創建不同的矢量圖片形狀(線狀圖等等),包括:
改變大小,旋轉和偏轉
動畫填入,拉直等屬性
添加線或者圓圈圖形到指定圖形中
監聽和響應鼠標屬性
組合圖形並且更好的去管理
原因八:SitePen dgrid
Sitepen,Dojo toolkit創始人Dylan Schiemann的javascript咨詢公司,打算替換Dojox的華而不實的Grid widget,使用更快,可擴展並且可編輯的Grid組件,主要特性如下:
支持不同的主題,配置簡單
支持移動
行可排序
允許“滯後加載”grid數據
支持樹狀的Grid
使用Dijit widget支持可編輯的Grid
可擴展,支持列寬改變,拖放支持和分頁,及其其它
原因九:DOH測試框架
測試對於我們來說非常重要,特別是對於客戶端而非服務器端的程序來說。隨著不同的瀏覽器的出現,客戶端的互動測試成為壹個必須的內容和步驟。Dojo toolkit提供了自己的測試框架。別名DOH(Dojo objective Harness)。提供了每壹個Dojo toolkit版本的下載
原因十:Dojo編譯流程
當壹個web應用準備部署時,對於創建壹個壓縮版的javascript對於加載速度和優化來說非常有必要。這有效的減少了請求次數,並且縮短了下載時間。Dojo的編譯分析Define將調用並且檢測依賴關系。使用Dojo toolkit編譯流程,妳需要創建壹個build profile。