AJAX架構(gòu)之Dojo篇
作者:hopesoft
出處:http://www.51ajax.com
一、前言
自去年開始,AJAX一下成了關(guān)注的技術(shù)熱點,各種AJAX框架迅速的發(fā)展了起來,其中又分為客戶端AJAX架構(gòu),服務(wù)器端AJAX架構(gòu)等,其中DojoToolkit做為一個優(yōu)秀的客戶端AJAX架構(gòu),被越來越多的人所關(guān)注,學(xué)習(xí)。自去年開始,AJAX一下成了關(guān)注的技術(shù)熱點,各種AJAX框架迅速的發(fā)展了起來,其中又分為客戶端AJAX架構(gòu),服務(wù)器端AJAX架構(gòu)等,其中DojoToolkit做為一個優(yōu)秀的客戶端AJAX架構(gòu),被越來越多的人所關(guān)注,學(xué)習(xí)。
二、Dojo簡介
作為早期的開源AJAX架構(gòu)之一,Dojo開始于2004年9月,網(wǎng)址是 http://www.dojotoolkit.org,由JotSpot的Alex Russell所領(lǐng)導(dǎo)。
Dojo是一個開源的JavaScript工具包,本身預(yù)置了很多模塊,可以實現(xiàn)完整的輕量級窗口組件及很多功能。Dojo的包加載機制(Package System)可以實現(xiàn)動態(tài)加載所需模塊,而且用戶可以編寫自己的Dojo擴展模塊,有很好的靈活性。
三、技術(shù)特點
1.文件結(jié)構(gòu)
Dojo目前最高版本號是0.3.1,它的文件主要由一個包含主要功能的核心代碼文件(Dojo.js)和眾多的Javascript文件組成。使用時可以根據(jù)包機制,動態(tài)載入所需模塊。
根據(jù)核心代碼包含模塊的不同,又細分為以下多個版本:
·AJAX版本:可以創(chuàng)建帶有AJAX應(yīng)用程序,集成復(fù)雜的可視效果,并使用事件模塊。
·Widget版本:包括與小器件實現(xiàn)松散耦合的 HTML 和CSS 模板能力,提供明確分離的樣式、內(nèi)容和邏輯。
·Event and I/O版本:包括事件模塊及I/O模塊
·Event版本:包括事件模塊
·Kitchen Sink版本:該版本包括整個工具集合
以上版本分別適用于不同的場合。用戶也可以根據(jù)自己的需求重新構(gòu)建自己的核心代碼文件,只包含自己常用的模塊,以避免頻繁動態(tài)加載常用的模塊。
2.程序結(jié)構(gòu)
Dojo官方的定義中,將Dojo稱之為Toolkit(工具包),不是Framework(只是Framework的一部分),也不是Library(在Library之上又加了一層封包系統(tǒng))。Dojo包括了Javascript本身的語言擴展,以及各個方面的工具類庫,和比較完善的UI組件庫。
如下圖:(原地址http://manual.dojotoolkit.org/WikiHome/DojoDotBook/Book16)
從圖中也可看出,Dojo的設(shè)計結(jié)構(gòu)非常合理,且擴展性非常強,能夠不斷增加新的功能,且保證程序高效的運行。
四、官方資源
Dojo的官方網(wǎng)站有以下資源,可以幫助我們很快的熟悉Dojo的結(jié)構(gòu),當然,因為Dojo有豐富的功能,要完全掌握還需要在實際開發(fā)中逐漸掌握。
1. Dojo手冊(The Dojo Manual)
網(wǎng)址:http://manual.dojotoolkit.org/
系統(tǒng)地介紹Dojo的機制,使用方法,示例代碼等
2.Dojo郵件列表(The Dojo Mailing Lists)
可以討論交流在使用Dojo中遇到的問題,或希望改進的建議
申請加入地址:http://dojotoolkit.org/mailman/listinfo/dojo-interest
查看存檔:http://news.gmane.org/gmane.comp.web.dojo.user
3.Dojo錯誤跟蹤系統(tǒng)(Bug Tracking)
網(wǎng)址:http://trac.dojotoolkit.org/
可以提交有效地發(fā)現(xiàn)bug,提交bug,以便能夠及時地消除Dojo中的bug
4.代碼倉庫(The Dojo Subversion Repository)
網(wǎng)址:http://trac.dojotoolkit.org/browser
可以很方便地獲得最新版本的Dojo程序包
5.The Dojo Wiki
網(wǎng)址:http://dojo.jot.com/
Dojo Wiki的內(nèi)容類別相對比較豐富,涉及到Dojo的各個方面。
6.IRC
聊天室地址:irc.freenode.net
7.Dojo程序包中附帶的Demo程序
提供了8大類近30個Demo程序,可以在實踐中更快地掌握Dojo的用法。
提示:推薦加入Dojo的郵件列表,并仔細研究示例代碼,這樣能更快地掌握Dojo的使用方法。
五、發(fā)展前景
1.技術(shù)層面
與其它AJAX框架相比,Dojo設(shè)計的包加載機制(Package System)和模塊化(Libraries)的結(jié)構(gòu),能保持更好的擴展性,提高執(zhí)行性能,減輕了用戶開發(fā)的工作量,并保持一定的靈活性(用戶可以自己編寫擴展)。
2.市場層面
Dojo現(xiàn)在發(fā)展迅猛,得到廣泛的支持,并成立了Dojo 基金會 , IBM 、AOL 、SUN這些大公司和WebWork、Tapestry、Open Laszlo等開源團隊都是dojo基金會的成員,雄厚的后盾保證了Dojo可以持續(xù)的發(fā)展下去。
3.開發(fā)團隊
在Alex Russell的領(lǐng)導(dǎo)下,Dojo的開發(fā)團隊有著強大的開發(fā)能力,從目前版本提供的功能、質(zhì)量及更新的速度我們就可以看出來了。另外近期Dojo將會發(fā)布0.4.0。
4.用戶群體
由于Dojo出色的設(shè)計,越來越多的AJAX專家及新手加入到了Dojo的開發(fā)者中,這些開發(fā)者也會相應(yīng)地動Dojo的發(fā)展。
5.學(xué)習(xí)資源
Dojo官方網(wǎng)站有著豐富的學(xué)習(xí)資源(見“官方資源”一節(jié)),可以幫助人們更快地掌握Dojo,減少學(xué)習(xí)成本。
六、結(jié)語
Dojo可以幫助開發(fā)人員開發(fā)大型的AJAX項目,并有助于構(gòu)建健壯的代碼,節(jié)省開發(fā)時間。Dojo背后強大的支持后盾也可以保證持續(xù)不斷的補充新功能,有助于我們脫離低層重復(fù)的工作,專注于在此基礎(chǔ)上進行開發(fā)。
相關(guān)文章
Dojo 學(xué)習(xí)筆記入門篇 First Dojo Example
Dojo學(xué)習(xí)筆記入門篇,第一個小例子, 剛開始學(xué)習(xí)dojo的朋友可以參考下。2009-11-11Dojo之路:如何利用Dojo實現(xiàn)Drag and Drop效果
Dojo之路:如何利用Dojo實現(xiàn)Drag and Drop效果...2007-04-04利用Dojo和JSON建立無限級AJAX動態(tài)加載的功能模塊樹
2007-03-03dojo 之基礎(chǔ)篇(三)之向服務(wù)器發(fā)送數(shù)據(jù)
dojo 之基礎(chǔ)篇(三)之向服務(wù)器發(fā)送數(shù)據(jù)...2007-03-03dojo 之基礎(chǔ)篇(二)之從服務(wù)器讀取數(shù)據(jù)
dojo 之基礎(chǔ)篇(二)之從服務(wù)器讀取數(shù)據(jù)...2007-03-03dojo學(xué)習(xí)第二天 ajax異步請求之綁定列表
在上一篇《dojo學(xué)習(xí)第一天 Tab選項卡》,我們學(xué)到了,怎么用dojo的選項卡插件來制作更易于用戶使用的表單,所有的一切都是為了使用更加方便,一切都是為了用戶的體驗2011-08-08