Dojo ●什么是Dojo?
Dojo是一个用JavaScript语言实现的开源DHTML工具包。它是在几个项目捐助基础上建立起来的(nWidgets, Burstlib, f(m)),这也是为什么叫它a unified toolkit的原因。Dojo的目标是解决开发DHTML应用程序遇到的那些、长期存在 、历史问题,以及DHTML 跨浏览器问题。
Dojo能够让你更容易使Web页面具有动态能力,或者在任何能够稳定支持JavaScript语言的环境中发挥作用。
Dojo有以下的特征:
1、利用Dojo提供的组件,你可以提升你的web应用程序可用性、交互能力以及功能上的提高。
2、也可以更容易的建立互动的用户界面。同时Dojo提供小巧的动态处理工具。
3、利用它的低级API和可兼容的代码,能够写出轻便的、单一风格(复杂)的JavaScript代码。Dojo的事件系统、I/O的API以及通用语言形式是基于一个强大编程环境。
4、通过Dojo提供的工具,你可以为你的代码写命令行式的单元测试代码。
5、Dojo的扩展包能够使你自己的代码更容易维护,耦合性更低。
Dojo通过很少的代码完成了以上的功能。当你写脚本时,只需要包含很少的js文件,也可以选择的(包含)下载dojo提供的庞大的功能。
---------------------------------------------------------------------------------------
(转)Dojo是一个非常强大的面向对象的JavaScript的工具箱, 建议能够去复习一下JavaScript下如何使用OO进行编程的, 这对于你以后阅读Dojo Source有很大的用处
请大家下载dojo 0.3.1, 以下的说明均针对此版本
1: 把Dojo加入到我们的Web程序中
1.1 标志
djConfig是Dojo里的一个全局对象, 其作用就是为Dojo提供各种选项, isDebug是最常用的属性之一, 设置为True以便能够在页面上直接看到调试输出, 当然其中还有些属性与调试有关, 这里就不啰嗦了
1.2 引用 dojo 的启动代码
这样你就引用了dojo的代码, 并可以直接使用其中部分常用的对象, 下载下来的dojo.js是压缩(remove comments and space)后的代码, 要阅读的话,建议阅读dojo.js.uncompressed.js, dojo.js大概有127K, 而未压缩前有211K, ok, 为什么会这么大呢, 原来其已经把部分常用的模块整合进dojo.js里, 因此显得大了一点, build.txt里就说明了默认的dojo.js包含了哪些模块
1.3 声明你所要用到的包
你就把这些代码当成是java的import语句或C#中的using语句一样, 如果你不require的话, 而模块本身又没有整合在dojo.js中, 是会出现脚本错误的喔
2. 针对不同需求提供的预整合包
Dojo本身是由许多模块所组合而成的, 但是由于用户需求的多样性, dojo针对不同的需求而提供了不同的版本, 用户在下载dojo的时候就看见可以选择很多的版本, 比如Ajax版和Widget版, 每个版本最重要的区别就在于dojo.js文件, 但是除此之外, 每一个版本都是全功能的, dojo.js根据版本的不同而整合进了不同的模块
3. 直接获取Dojo的最新源代码
......
模块
Dojo的代码被划分为逻辑单元称之为模块, 这有点类似于Java中的package,除了dojo的模块能够包含类 (类似于java中的classes)和简单函数
比如: 模块"dojo.html"包含了一系列的函数, 比如dojo.html.getContentBox(), 模块"dojo.dnd"包含了一系列的HtmlDragObject的类
注意名称约定, 函数的首字母为小写字母,类的首字母为大写
模块也可以称之为"命名空间"
包
在多数情况下, dojo的模块只需要定义在一个文件就可以了, 但有时, 一个模块可能划分到多个文件, 比如: 模块dojo.html, 本来是定义在一个文件中, 可是由于功能的增强, 文件逐渐变大, 我们不得不将其拆分为多个文件, 这主要是为性能考虑, 以便浏览器可以只下载其需要用到的代码, 不幸的是其实现细节对于dojo的用户看起来不那么透明, 你必须知道你想要用到的功能到底是包含在哪个文件, 然后才能require并使用它,这样的每一个文件都称之为一个包
构成要素 Dojo提供各种针对不同开发者的特性。对于初学者,它提供服务器端开发者小部件。HTML/CSS开发者可以开发出模板驱动的小部件。它还提供一个有于开发稳健Web应用程序的强大JavaScript库。 Dojo的基础是一个在文档资料中称作base(基本成分)的小型库。它包括AJAX、事件处理、特效、CSS查询、语言实用工具等。这个基本库包含在核心Dojo文件(Dojo.js)中。此外,核心文件中还包含拖放、AJAX扩展表单和I/O、JSON-RPC、国际化和后退按钮处理等功能。它提供的有效库和选项的数量可能非常庞大。 前面提到的小部件通过一个叫做Dijit的小部件系统提供,这个系统位于Dojo的顶部。Dijit允许你用很少或不用JavaScript建立强大的Web界面。Dojo的独特特色包括:内置的国际化和本地化支持、所有Dijit小部件提供完整的易访问性微调、支持连贯键盘事件处理的基础架构、并能够仅使用CSS处理所有Dijit组件。 Dojo利用一个类似于Java软件包的基于模块的基础架构。当你需要知道加载哪些库和以何种顺序加载这些库时,这消除你遇到其它工具箱的问题。有一个简单的例子说明了如何使用日历小部件。下面的网页允许用户使用日历下拉小部件选择两个日期值。
都是一些JavaScript框架,具体信息可以查询百科
dojo http://baike.baidu.com/view/1054672.htm
extjs http://baike.baidu.com/view/1350145.htm
jQuery也是一个类似的很不错的东东。