何为dojo Toolkit
Dojo Toolkit(以下简称dojo)是一个javascript语言实现的、跨浏览器的DHTML(Dynamic HTML)工具包。Dojo ToolKit包括了构建大规模Ajax驱动的web应用程序所需要的一切。所以,你也可以把他看成是一个Ajax库,但它不仅仅是个ajax库。
dojo功能远比你想象的要强大,几乎能够满足你开发web应用时所需要的。当然,dojo的学习难度比较大,但是一旦你掌握了它,你会发现使用dojo来开发应用原来是这么方便和得心应手。
Dojo框架的组成
Dojo大致可以分成dojo、dijit、dojox这三个包(Package)。
dojo包是dojo toolkit的基础,它包含了整个框架最基础的部分,包括Ajax基础、事件等。
dijit包里面包含了基于模板的布局组件(widget)类。如对话框日历、树等。
dojox(dojo eXtensions)是一个扩展区,提供了更加绚丽的组件和一些新奇的组件,很强大!
下图是dojo的文件夹目录:
如果你只需要dojo的ajax与事件操作,完全可以不使用dijit和dojox。
Dojo工具包与AMD(异步模块加载)
Dojo中的功能是模块化的,这样便于管理。它包含了上百个包,这些包分别位于dojo、dijit、dojox这三个一级命名空间下。所以在使用时我们通常按需加载。
下图是一些常用包。这些包分布在不同文件夹里。
每个包里面有很多的类,可以实现一些特定功能。
异步模块加载不用在html中嵌入<script>标签来加载javascript,而是在javascript代码中加载。
加载方法有几种:
传统的dojo.require()/dojo.provide()
Dojo异步模块加载器AMD格式,define()
require()直接加载
代码如下:
如何部署
下载dojo框架(http://dojotoolkit.org),并解压放到网站某个能访问的目录下,比如你放到了(wwwroot)/下,里面的dojo目录包含dojo、dijit、dojox三个目录。这样就可以了吗?是的!就是这么简单。不过以后可能涉及包路径问题,这个在后面会推荐一个比较好的开发模板。
从简单例子开始
这个例子中只需要新建一个html文件就可以了,引入必要的dojo.js(这个根据你把dojo框架放哪来定)。
首先在html里引入dojo.js文件,这个js文件是必须包含的,而且在整个框架你甚至只要在html里包含这一个js文件。require用来以AMD模式加载其他包,但这里面我们没有用到其他包,所以比较简单。byId函数式属于dojo命名空间下的函数,已经通过script标签加载了。
require函数的使用:
require(
[“模块1”,”模块2”],
function(模块1的别名,模块2的别名)
/*……*/
});
上图中,包含了app包中map类,其别名为appMap。所以下面使用时不用写完整的名字:app.map,只需要appMap。