由於工做剛接觸到dojo框架,網上找各類資料,發現不多不多(大可能是之前的),只能看官網學習了,英文不行,一邊翻譯一邊學習,還能學點單詞...呵呵算法
我在Apache下運行Dojo demo,初學,但願有理解不對的地方指點指點...編程
1、先總的來認識一下dojo的工具包:api
①dojo數組
dojo框架的核心包。dojo裏廣泛實用的軟件包、模塊都在裏面,如:Ajax、DOM操做、類編程、事件、異步Promises、數據存儲、拖放以及本地化與國際化等...緩存
②dijit數據結構
小部件框架和內建的小部件集。app
③dojox框架
它是創建在dojo和dijit之上,有些模塊在實驗階段,有些已經很成熟。dom
④util異步
支持其餘的工具包,可以編譯測試和文檔代碼。
⑤dgrid
輕量級表格控件
⑥gridx
以快速渲染、模塊化、插件爲基礎的控件,數據結構與算法、數據處理與通訊、實用工具、圖形 API 以及 Web UI 等。
2、AMD(異步模塊加載機制)
模塊:是一個能夠被單個參考訪問的值,若是有多個數據或者功能要在一個模塊中,那麼他們必須是指向模塊的一個單個對象的屬性,一個模塊一般是一個單一的JavaScript文件。
模塊的加載機制:經過兩個全局函數require/define加載模塊
require({提供的對象}[模塊依賴列表(字符串數組)],fun(callback)),參數都是可選的;
require(["my/app","dojo"],function(app,dojo){
.....
//只是加載了模塊,沒有返回本身的值
});
define("模塊名",[模塊依賴列表(字符串數組)],fun(模塊的值是函數的返回值)/value),前兩參數可選;
define("my/mapper/api",[
"dojo/_base/declare",
...,
"dojo/domReady!"],function(declare,...,ready){
return ....
//加載了模塊,也提供了值
});
AMD:Asynchronous Module Definition(異步模塊加載機制),模塊的定義,依賴關係,引用關係以及加載機制。
3、dojoConfig:
dojoConfig是配置dojo的主要機制,它被模塊加載器引用着,也是Dojo組件的全局選項,若是須要,也能夠進一步被自定義程序配置點使用。
dojoConfig = {
has:{
"dojo-firebug": true
},
parseOnLoad: false,
foo: "bar",
async: true
};
has:經過包含一個對象特性的散列值作爲has的特性,這個特性設置是爲了決定Dojo支持的某一能力。dojo-firebug:調試配置;
parseOnLoad:是否在頁面加載完成之後執行解析功能(dojo/parser);
async:是否異步。
baseUrl: 當轉化一個模塊標識符爲地址或者URL時,baseUrl將添加給它。
packages: 一個對象數組,它提供了包的名字和位置。
aliases: 容許你設置模塊的別名。
paths: 容許自定義路徑。
packagePaths: 速記符號,能夠用來指定多個相同根目錄的包配置。
deps: 一個應該在Dojo載入完成後當即載入的資源路徑數組。
callback: 一個在deps被取出後執行的回調函數。
waitSeconds: 等待加載模塊超時時間,默認爲0(永遠等待)。
cacheBust:若是爲true,添加時間值到每一個模塊URL中做爲querystring避免模塊緩存。
Dijit,DojoX,它們的模塊標誌和行爲是能夠被設置的,一樣也能夠在你本身的應用程序和模塊中使用