dojo的文档实在不敢恭维,学习dojo,我个人认为读源码是个比较好的方式。
首先这个引用,你懂的
<script type="text/javascript" src="dojo/dojo/dojo.js"></script>
故事就是这么开始的,dojo就这么被用上了
- dojo.js
打开dojo.js,一大段注释就映入眼帘了...(dojotoolkit.org上的的文档其实就是这些源代码附带的玩意,与其去网上找,还不如直接查看源代码),让我们直接进入正题
if(typeof dojo == "undefined"){
// only try to load Dojo if we don't already have one. Dojo always follows
// a "first Dojo wins" policy.
(function(){
//省略各种内容
})();
};
首先要注意,这里有个注释我保留了,留意一下这个policy,再后来的dojo.require里也有体现。
(其实这玩意技术上很简单,关键在留一下这个思想,已经这个思想在整个体系里的表现和贯穿)
再就是我想对这种模式(function(){})()插一嘴,其实只要注意到()在javascript可以看成是invocation operator就好了
稍微掳两眼就会发现这个dojo.js主要是来加载其他js文件的(感觉这句说了和没说一个效果),以及定义了在不同环境
下加载js文件的不同方式。
很容易的,就会发现接下来dojo.js加载了
dojo/dojo/_base/_loader/bootstrap.js
dojo/dojo/_base/_loader/loader.js
dojo/dojo/_base/_loader/hostenv_browser.js
dojo/dojo/_base.js"
- bootstrap.js
用过dojo的应该在firebug里没少看过"bootstrap"。具体下来,bootstrap也就是解析了dojo config,定义了dojo,
以及一些其他的dojo全局方法。
-
loader.js
这个文件里出来定义了dojo的module管理方法,最特别的是申明了一个“define”全局方法,整个dojotoolkit就是引入
了2个全局变量(dojo, define),由此可以这个define还是有点拽的。我对define的理解就是,在异步加载条件下,
模块化管理管理js代码的工具。当然,可以忽略我的理解,参考这里http://dojotoolkit.org/features/1.6/async-modules
- hostenv_browser.js
这个没啥好说的,就加上了相关的环境信息,以及load相关的
- _base.js
到目前为止,基本上dojo的整个module管理模型就以及初始化成型了。_base.js只是简单的把一些工具默认的随dojo加载到了当前环境,所有这些就构成了dojo core。
define("dojo/_base",[
"dojo/_base/lang",
"dojo/_base/array",
"dojo/_base/declare",
"dojo/_base/connect",
"dojo/_base/Deferred",
"dojo/_base/json",
"dojo/_base/Color",
dojo.isBrowser? "dojo/_base/browser" : "dojo/_base/lang"], function(){
return dojo;
});
其中值得一提是declare, connect, 和Deferred。
基本上,dojo就是这样进入页面的。
分享到:
相关推荐
而`dojo.js`则是经过压缩和优化的版本,用于生产环境以提高页面加载速度。 1. **模块化系统**:Dojo 使用AMD(Asynchronous Module Definition)模块化规范,允许开发者按需加载和组织代码,减少初始加载时间,并...
这个"超多的Dojo实例应用演示源码"压缩包显然是一个关于Dojo框架的实践教程集合,其中包含了多个示例项目,可以帮助开发者更好地理解和学习Dojo的用法。 1. **Dojo基础**:Dojo的核心是dojo.js文件,它提供了一系列...
通过深入研究"Master Dojo源码",你将能够学习到JavaScript模块化编程的最佳实践、异步加载策略、DOM操作的高效方法、UI组件的设计模式,以及如何利用单元测试保证代码质量。这将对你的前端开发技能提升大有裨益,...
在深入学习Dojo之前,建议先熟悉JavaScript的面向对象编程基础,这对于理解和使用Dojo源码至关重要。 **1. 模块与包** 模块在Dojo中扮演着核心角色,它们是代码组织的基本单元,类似于Java的package。每个模块可以...
源码则提供了实践中的实例,你可以直接下载并在本地环境中运行,以便更直观地学习和调试。 在学习过程中,你将接触到以下几个关键知识点: 1. **Dojo模块化**:理解Dojo的模块系统,包括如何定义模块、导入模块...
总的来说,Dojo 1.8.1源码的获取为开发者提供了一个深入学习JavaScript框架、提升前端开发技能的宝贵机会。通过深入研究和实践,你可以更好地理解Web开发的最佳实践,并可能发现Dojo在你的项目中所能发挥的独特价值...
下载的压缩包"dojo-release-1.4.0b2"包含了Dojo框架的所有源码和相关资源,开发者可以解压后在本地环境中进行开发和调试,了解和学习Dojo 1.4.0 beta2的具体实现和用法。同时,根据需求,开发者还可以查阅官方文档,...
这个压缩包“Dojo实例应用演示源码收集.zip”显然包含了与 Dojo 相关的示例代码,可以帮助开发者深入理解和学习 Dojo 框架的应用。 **1. Dojo 的核心特性** - **模块化系统(AMD - Asynchronous Module Definition...
标签也是"dojo-release-1.4.2-src.tar.gz",这通常用于文件分类和搜索,确保用户能够准确找到他们所需的特定版本的Dojo源码。 压缩包内的文件名称列表未给出详细内容,但可以推测它可能包含以下部分: 1. **dojo...
1. **dojo.js**: 这是Dojo的核心文件,负责加载和管理模块,初始化Dojo环境。 2. **dijit**: 这是Dojo的UI组件库,包含各种可复用的用户界面元素。 3. **dojox**: 这个模块包含社区贡献的扩展和实验性功能,不一定是...
10. **dojo-release-1.1.1**:这个特定版本可能包含了Dojo 1.1.1的所有源码、文档、示例和测试用例,供开发者学习和调试使用。 通过解压"dojo-release-1.1.1.tar.gz",你可以深入研究Dojo的源码,了解其设计思想和...
Dojo 是一个强大的JavaScript...在`dojo-release-1.7.2`压缩包中,你会找到Dojo框架的所有相关文件,包括源码、文档、示例和资源。开发者可以通过这些资源深入学习和使用Dojo 1.7.2,构建高性能、易于维护的Web应用。
Dojo提供了一套完整的构建工具,可以优化代码、压缩、合并以及创建定制的Dojo版本,大大减少了生产环境中的加载时间。 10. **实战应用** 在实际项目中,我们可以利用Dojo构建复杂的企业级应用,例如,结合dojo/...
AMD是一种在浏览器环境中解决JavaScript模块化问题的规范,它允许脚本文件并行加载,并通过回调函数处理依赖关系。Dojo是最早支持AMD模式的库之一,它的`dojo.require`和`dojo.provide`等方法被AMD的`define`函数所...
首先,Dojo的核心特性之一是它的模块系统AMD(Asynchronous Module Definition),这是在浏览器环境中实现模块化编程的一种方式。在Dojo 1.8.5中,你可以看到`dojo/require`和`dojo/define`这两个关键函数的实现,...
总结,“dojo-release-1.1.2-src”源码包包含了Dojo 1.1.2的所有源代码,通过学习和研究这些源码,开发者可以深入了解Dojo的工作机制,提升JavaScript开发技能,更好地利用Dojo库构建高效、可维护的Web应用。
9. **源码学习价值** 分析源码可以帮助我们了解Dojo的实现原理,如模块加载机制、事件处理方式、组件构建模式等,这对于提升JavaScript编程技能和理解前端架构设计有极大的帮助。 通过解压并研究“dojo-release-...
解压后,开发者可以深入了解Dojo的内部结构,学习如何使用和扩展Dojo,或者对源码进行调试和定制。 总的来说,Dojo是一个全面的JavaScript框架,它的设计目标是提供一套完整的解决方案,帮助开发者构建复杂的、高...
1. **Dojo基础**:首先,书籍可能会介绍Dojo的基本概念,包括它的模块系统、加载机制以及如何通过`dojo.require`引入所需模块。还会解释Dojo的核心组件,如dojo.js,以及如何设置和配置Dojo环境。 2. **客户端验证*...