Learning Dojo : Overview

来源:互联网 发布:火箭军作训服淘宝 编辑:程序博客网 时间:2024/04/29 11:05

实习一个多月了,一直在做些Mashup Maker上的Widgt,全是基于Js的Dojo工具包的。不过一直也没系统的学习,都是做的东西需要什么就去找相应的资料文档,感觉知识不太成体系。这几天,没那么忙了,想系统点的学习一下。主要资料来源为The Book of Dojo, Dojo Campus, Mastering Dojo 等英文文档,再加上我自己的一些使用心得吧。

首先简要介绍一下Dojo吧,网上能搜到的废话就不说了吧,说说自己的感觉。Dojo是一个JavaScript的开发工具包,使用它,开发人员可以容易的开发出复杂而美观的网页功能和效果。例如,要实现页面上一个可拖拽的图标,你使用JS可能需要很多行代码才能完成,而使用Dojo你只需要将Dojo中的Dnd(Drag and Drop)包引入,然后写一句代码!这么说起来Dojo似乎很像一个一大堆有用的组件的集合,可事实上,Dojo不仅仅是想做一个工具箱,而希望从底层打造一套完整的客户端网页UI开发平台和框架。为什么这么说,因为Dojo具有良好整体架构和比较严格的组件规范。也就是说,Dojo的不同功能模块都是基于一个统一的底层平台,而这些具体功能模块之间是独立低耦合而又规范统一的,用户可以根据他们的需要选择引入一些模块,而这些模块都是基于一个统一的标准开发的,而且可以容易的组合起来完成一个High Level的任务。就好比Dojo底层是一个电源插座,而这些功能模块就好比一个个电器,你需要哪些就将这个电器的插头插上,而这些电器的使用控制方法都是大致相同的而且可以相互配合工作。因此,Dojo不是想给你提供一个电灯或者一个电视,而是整套家电系统,而且你只需要一个遥控器就可以控制所有这些电器!

Dojo主要分成4个包:dojo是核心,包括Ajax基础,以及事件、JSON、CSS查询等基本内容;dijit包含了各种基于模板的布局、组件类,可以在它们的基础上直接使用或者继承定制;dojox;是上述两个包的扩展包,提供了更加丰富绚丽的组件以及功能;util;是辅助工具包。不过,可能是还不够成熟,感觉Dojo还是过多的关注在了具体的功能层面上,而对于整体的把握还不是特别好,对于每个模块的规范化和模块的划分和不是很好,甚至存在有两个功能几乎相同的模块被划分在两个大类中的情况发生。尤其是dojox,感觉就是个大杂烩,很多更前两个包重叠的部分。个人认为dojo应该在功能的划分上做得更好一些。

不说废话了,还是开始说说怎么使用吧。安装非常容易,下载最新的Dojo包(现在是1.1),解压后放在你的网站路径下,然后在需要使用的网页中将Dojo总目录/dojo/dojo.js引入,最后根据需要使用dojo.require()语句导入相应的js文件就行了。

关于Dojo的开发将从下一篇开始.......