由于工做刚接触到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,它们的模块标志和行为是能够被设置的,一样也能够在你本身的应用程序和模块中使用