- 浏览: 677057 次
- 性别:
- 来自: 合肥
文章分类
最新评论
-
di1984HIT:
学习了,学习了!
Tomcat的URL中文乱码解决以及传输优化 -
arottenapple:
...
我的二十一天CoreJava 学习笔记 -
黯淡流觞:
...
我的二十一天CoreJava 学习笔记 -
onlyOneToOne:
wsc830719 写道@RequestMapping(val ...
spring mvc3中 ResponseBody中文乱码 -
waj_615:
但是打印订单不是简单的string 啊
用java实现打印功能
原文地址:http://dojotoolkit.org/documentation/tutorials/1.7/hello_dojo/
欢迎来到Dojo世界!在本教程中。你将会学到如何去加载和使用dojo的一些核心功能。你也能学到关于dojo的异步模块加载的相关知识,知道如何在你的网页中使用他们,在运行出错时如何得到更多的帮助信息。
开始
我们将从在一个简单的HTML页面中加载google cdn远程dojo.js来开始。这很简单。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Tutorial: Hello Dojo!</title> <!-- load Dojo --> <script src="//ajax.googleapis.com/ajax/libs/dojo/1.7.2/dojo/dojo.js" data-dojo-config="async: true"></script> </head> <body> <h1 id="greeting">Hello</h1> </body> </html>
这段代码中加载了dojo,并且可以使用dojo的功能了。在这里你可能注意到了,对于dojo1.7版本中,使用了data-dojo-config这个属性。这是HTML5的特性,这是被用来配置当加载dojo时的一些属性。他可以包含几个属性键值的集合。这里所起的作用和写一个script标签的作用是相同的。
CDN版本的dojo并不包含调试的全部功能。在开发时,建议使用下载的SDK版本。
与以前的版本相比较。以前的版本叫sync mode(legacy mode)会自己的加载所有的dojo base。在1.7的版本中,只要设置了async:true这个属性,将会切换成async mode(AMD mode)。在这种模式下,一些模块,如fx,xhr和query将不会自己被加载。将只会默认的加载自己的功能。这将真正的实现了需要时再加载的机制。使用1.7版本,将会使你的代码更小运行更快。
所有的教程都将使用dojo1.7的基础版本,这有利于你能快速在你的页面中进行开发。
使用async模式,将会使用新的AMD加载器来加载模块。这种新的加载器明显的比以前的加载器加载速度要快。
定义和加载模块
1.7版本的dojo定义模块时更快在定义文件了。如"my/module/id",这是使用1.7版本来定义模块。事实上,这种定义是直接映射到脚本文件上的,这也就是说,你加载一个"my/module/id"这个模块,也就是加载了"my/module/id.js"这个文件(加载的机制很复杂,但对使用者来说,了解这么多就已经足够了)
为了定义和加载模块,对于加载器来说,定义了两种重要的功能。require,用来加载模块。define,用来定义模块。这两种功能都有两个参数,一个是需要模块的ID集合。另一个是加调函数。这通过一个例子能更好的理解。
// In demo/myModule.js (which means this code defines // the "demo/myModule" module): define([ // The dojo/dom module is required by this module, so it goes // in this list of dependencies. "dojo/dom" ], function(dom){ // Once all modules in the dependency list have loaded, this // function is called to define the demo/myModule module. // // The dojo/dom module is passed as the first argument to this // function; additional modules in the dependency list would be // passed in as subsequent arguments. var oldText = {}; // This returned object becomes the defined value of this module return { setText: function(id, text){ var node = dom.byId(id); oldText[id] = node.innerHTML; node.innerHTML = text; }, restoreText: function(id){ var node = dom.byId(id); node.innerHTML = oldText[id]; delete oldText[id]; } }; });
这个例子是定义了一个模块,这个模块有一个父类dojo/dom并且定义了两个方法setText和restoreText,现在我们来使用这个模块。
// Require the module we just created require(["demo/myModule"], function(myModule){ // Use our module to change the text in the greeting myModule.setText("greeting", "Hello Dojo!"); // After a few seconds, restore the text to its original state setTimeout(function(){ myModule.restoreText("greeting"); }, 3000); });
这个示例是把内容<h1 id="greeting">元素替换成了"Hello Dojo!",然后在3秒后恢复成原值。注意,我们没有加载其它的js,加载器会自己的加载运行所必须依赖的其它js模块。
在legacy mode中可以使用dojo.require来加载其它模块,在saync mode中可以使用dojo/require! 插件来加载其它模块。这么做是为了可以兼容以前版本。
等待DOM加载
大多部的js框架都提供了等待DOM加载完成再运行js的功能,dojo也不例外。在1.7版本中,这种功能是以一种特殊的模块插件来实现。插件可以像别的模块一样的加载,只不过在加载时,其名称后要加一个感叹号来区分。DOJO提供了名叫dojo/domReady插件。只要简单的在require或define中加入这个模块就可以在DOM加载完成后调用回调函数。
require(["dojo/dom", "dojo/domReady!"], function(dom){ var greeting = dom.byId("greeting"); greeting.innerHTML += " from Dojo!"; });
上面的例子中,简单的在greeting这个元素中加了一些文字,这个功能只能在DOM已经被加载后才能被执行。还有,要注意,在模块名称后有一个感叹号。没有这个感叹号,dojo/domReady将是只被简单的认为是一个模块而被做为参数传给回调函数。
加入视觉效果
只是在文字中加入<h1>并没有什么兴奋的。我们来给它加上一个动画。有个模块可以被用来加入动画效果,这个模块是dojo/fx。好,让我们来加入一个dojo/fx的slideTo方法来看看。
require(["dojo/dom", "dojo/fx", "dojo/domReady!"], function(dom, fx){ // The piece we had before… var greeting = dom.byId("greeting"); greeting.innerHTML += " from Dojo!"; // …but now, with a fun animation! fx.slideTo({ top: 100, left: 200, node: greeting }).play(); });
就像你看到的那样,我们加入了一个新的模块依赖。dojo/fx,然后使用这个模块来加入了动画的效果。
发表评论
-
dojo封装dialog提示框
2012-06-20 10:20 5572/** * 显示dojo的弹出框.前提是已经引用了相 ... -
dojo封装表单ajax提交
2012-06-20 10:16 1672/** * dojo的ajax提交form(post ... -
封装创建dojo的dialog
2012-06-18 13:55 0/** * 显示dojo的弹出框.前提是已经引用了相 ... -
自定义封装dojo通用ajax提交表单
2012-06-18 13:52 2607/** * dojo的ajax提交form(post ... -
使用dojo的dialog自定义confirm效果
2012-06-18 13:43 5057/** * 使用dojo dialog模拟confi ... -
dojo 制做非模态窗口dialog
2012-06-16 13:27 4280dojo的dialog效果基本上都是模态的,也就是说,在弹出窗 ... -
dojo1.7的加载方法
2012-06-01 17:16 4230对于dojo1.7来说,最大的变化就是引入了AMD异步加载器。 ... -
不翻译DOJO了
2012-05-16 17:57 1071翻译DOJO的时间并不长。总是感觉把老外的话翻译过来很是生硬, ... -
dojo1.7翻译 数组工具(Arrays Made Easy)
2012-05-14 10:55 1863英文地址:http://dojotoolkit.org/ ... -
dojo1.7翻译 Dijit的主题,按钮和文本框(Dijit Themes, Buttons, and Textboxes)
2012-05-03 15:52 2148原文地址:http://dojotoolkit.org/ ... -
dojo1.7翻译 动画效果(Animations)
2012-05-02 12:08 2719原文地址:http://dojotoolk ... -
dojo1.7翻译 动态效果(Dojo Effects)
2012-04-27 10:15 1280原文地址:http://dojotoolkit.org/doc ... -
dojo1.7翻译 处理DOM(Dojo DOM Functions)
2012-04-26 15:51 2475原文地址:http://dojotoolkit.org/doc ... -
dojo1.7翻译 ajax跨域请求(Getting Jiggy with JSONP)
2012-04-25 12:02 3120原文地址:http://dojotoolk ... -
dojo1.7翻译 ajax功能(Ajax with Dojo)
2012-04-24 15:04 1534原文地址:http://dojotoolk ... -
dojo1.7翻译 搜索节点功能(Using dojo/query)
2012-04-23 15:32 1832原文地址:http://dojotoolkit.org/doc ... -
dojo1.7翻译 定义类(Classy JavaScript with dojo/_base/declare)
2012-04-20 15:34 2496原文地址:http://dojotoolkit.org/doc ... -
dojo1.7翻译 定义模块(Defining Modules)
2012-04-18 17:21 6772原文地址:http://dojotoolkit ... -
dojo1.7翻译 通过dojoConfig来配置dojo
2012-04-18 09:20 5151原文地址:http://dojotoolk ... -
dojo1.7翻译 Hello,World
2012-04-17 10:17 1561原文地址:http://dojotoolkit.org/ref ...
相关推荐
Dojo1.7 Api chm 英文版
Dojo 1.7 中文版本注释功能说明,以Dojo使用案例,很经典,做为系统了解Dojo功能及用法很有用!
Dojo 1.7 版本注释 非常全面 收集了很就在这里和大家共享。共同学习。
最新dojo包,内含最新的实例若干个。是入门学习的好帮手!
dojo 源码1.7汇总 包括dijit 和 dojo 打包汇总 非常好的
Dojo 1.1.1 提供了上百个包,这些包分别放入三个一级命名空间:Dojo,Dijit和 DojoX 。其中 Dojo 是核心功能包 , Dijit 中存放的是 Dojo 所有的Widget 组件,而 DojoX 则是一些扩展或试验功能,DojoX 中的试验功能在...
dojo dojo实例 dojo例子 dojo资料 dojo项目 dojo实战 dojo模块 dojo编程
一、 Dojo学习笔记(1. 模块与包) 1 二、 Dojo学习笔记(2. djConfig解说) 4 三、 Dojo学习笔记(3. Dojo的基础对象和方法) 6 四、 Dojo学习笔记(4. dojo.string & dojo.lang) 9 五、 Dojo学习笔记(5. dojo.lang.array ...
dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档
Dojo是一个非常强大的、面向对象的、开源的JavaScript工具箱,它为开发富客户端Ajax应用提供了一套完整的小部件和一些特效操作。曾经有人这样说:“对于一个Web开发者而言,如果没有Dojo,他将是一个“残废”的...
DOJO中文手册【出自dojo中国】 页数60+ 简单介绍: Dojo 是一个用javascript语言实现的开源DHTML工具包。它是在几个项目捐助基础上建立起来的(nWidgets, Burstlib, f(m)), 这也是为什么叫它a \"unified\" toolkit的...
dojo js dojo js dojo js dojo js dojo js dojo js dojo js
dojo.js.核心jsDojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库
Dojo官方教程中文翻译(完整版),欢迎大家下载参考。
学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源...
Dojo学习笔记-- dojo.event & dojo.event.topic & dojo.event.browser Dojo学习笔记--DateTextbox Dojo学习笔记--Dojo的基础对象和方法 Dojo学习笔记--FisheyeList鱼眼效果 Dojo学习笔记--TabContainer Dojo...
Dojo学习笔记-- dojo.event & dojo.event.topic & dojo.event.browser Dojo学习笔记--DateTextbox Dojo学习笔记--Dojo的基础对象和方法 Dojo学习笔记--FisheyeList鱼眼效果 Dojo学习笔记--TabContainer Dojo...
Dojo学习笔记-- dojo.event & dojo.event.topic & dojo.event.browser Dojo学习笔记--DateTextbox Dojo学习笔记--Dojo的基础对象和方法 Dojo学习笔记--FisheyeList鱼眼效果 Dojo学习笔记--TabContainer Dojo...
dojo中文文档下载。dojo中文文档下载。
Dojo是基于JavaScript开发的,用来作为WebGis API For JavaScript开发的框架使用,本文档是官方教程的中文翻译,值得收藏和拥有!