- 浏览: 688371 次
- 性别:
- 来自: 合肥
文章分类
最新评论
-
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 5658/** * 显示dojo的弹出框.前提是已经引用了相 ... -
dojo封装表单ajax提交
2012-06-20 10:16 1715/** * dojo的ajax提交form(post ... -
封装创建dojo的dialog
2012-06-18 13:55 0/** * 显示dojo的弹出框.前提是已经引用了相 ... -
自定义封装dojo通用ajax提交表单
2012-06-18 13:52 2654/** * dojo的ajax提交form(post ... -
使用dojo的dialog自定义confirm效果
2012-06-18 13:43 5125/** * 使用dojo dialog模拟confi ... -
dojo 制做非模态窗口dialog
2012-06-16 13:27 4330dojo的dialog效果基本上都是模态的,也就是说,在弹出窗 ... -
dojo1.7的加载方法
2012-06-01 17:16 4266对于dojo1.7来说,最大的变化就是引入了AMD异步加载器。 ... -
不翻译DOJO了
2012-05-16 17:57 1104翻译DOJO的时间并不长。总是感觉把老外的话翻译过来很是生硬, ... -
dojo1.7翻译 数组工具(Arrays Made Easy)
2012-05-14 10:55 1973英文地址:http://dojotoolkit.org/ ... -
dojo1.7翻译 Dijit的主题,按钮和文本框(Dijit Themes, Buttons, and Textboxes)
2012-05-03 15:52 2215原文地址:http://dojotoolkit.org/ ... -
dojo1.7翻译 动画效果(Animations)
2012-05-02 12:08 2782原文地址:http://dojotoolk ... -
dojo1.7翻译 动态效果(Dojo Effects)
2012-04-27 10:15 1322原文地址:http://dojotoolkit.org/doc ... -
dojo1.7翻译 处理DOM(Dojo DOM Functions)
2012-04-26 15:51 2538原文地址:http://dojotoolkit.org/doc ... -
dojo1.7翻译 ajax跨域请求(Getting Jiggy with JSONP)
2012-04-25 12:02 3163原文地址:http://dojotoolk ... -
dojo1.7翻译 ajax功能(Ajax with Dojo)
2012-04-24 15:04 1567原文地址:http://dojotoolk ... -
dojo1.7翻译 搜索节点功能(Using dojo/query)
2012-04-23 15:32 1912原文地址:http://dojotoolkit.org/doc ... -
dojo1.7翻译 定义类(Classy JavaScript with dojo/_base/declare)
2012-04-20 15:34 2563原文地址:http://dojotoolkit.org/doc ... -
dojo1.7翻译 定义模块(Defining Modules)
2012-04-18 17:21 6859原文地址:http://dojotoolkit ... -
dojo1.7翻译 通过dojoConfig来配置dojo
2012-04-18 09:20 5232原文地址:http://dojotoolk ... -
dojo1.7翻译 Hello,World
2012-04-17 10:17 1604原文地址:http://dojotoolkit.org/ref ...
相关推荐
【Dojo 1.7 知识点详解】 Dojo 1.7 是 Dojo Toolkit 重要的版本更新,其中引入了显著的改进和新特性,尤其是对模块加载机制的革新。这一版本的主要焦点在于Asynchronous Module Definition (AMD),这是一种优化...
【Dojo 1.7 中文版本注释功能说明】 Dojo 1.7 是一个重大的版本更新,其中引入了显著的改进和新特性,尤其是对模块加载机制的革新。这一版本的核心亮点是实现了Asynchronous Module Definition (AMD)机制,这是一项...
《Dojo 1.7 API CHM:深入理解与应用》 Dojo 是一个功能强大的JavaScript工具库,尤其在Web开发领域,它提供了一系列高级功能,包括模块化、数据管理、用户界面构建以及Ajax交互等。Dojo 1.7 API CHM文件是针对这个...
7. **dojo/on**: Dojo 1.7 中的事件处理模块`dojo/on`提供了一种统一的方式来绑定和处理DOM事件,它兼容各种浏览器,提升了代码的可移植性和可维护性。 8. **dojo/aspect**: 这是一个面向切面编程(AOP)的模块,...
Dojo 1.7 版本是其历史上的一个重要里程碑,引入了许多改进和优化,包括模块化系统AMD(Asynchronous Module Definition)以及对Dijit UI 框架的增强。 首先,我们来详细了解一下Dojo 的核心部分。Dojo 框架的核心...
《Dojo 1.7 深入解析与应用实践》 Dojo 是一个全面的JavaScript工具库,专为构建富互联网应用程序(RIA)而设计。这个“dojo-release-1.7.1-src”压缩包包含了Dojo 1.7.1的源代码,为开发者提供了深入了解和自定义...
手册中列举了一些常用的Dojo包,如dojo.io用于不同类型的IO传输,dojo.dnd提供拖放功能的API,dojo.string提供了字符串处理方法,dojo.date帮助解析和操作日期,dojo.event处理事件驱动和AOP开发,dojo.back管理撤销...
"dojo-release-1.7.3"是Dojo框架的一个特定版本,发布于2012年,这个版本在1.7系列中被认为是稳定且广泛使用的。 1. **模块化系统(AMD)** Dojo 1.7 引入了Asynchronous Module Definition(AMD),这是一种异步...
Dojo 1.7 引入了AMD,这是一种异步模块定义的加载机制,允许开发者按需加载模块,提高了页面性能。通过`require()`函数,我们可以方便地引入和依赖其他模块。 2. **Dijit UI 库:** Dijit是Dojo的UI组件库,包含...
在Dojo 1.7及以后的版本中,推荐使用`dojo/on`模块来处理事件。 7. **动画效果**:dojo的`dojo.fx`模块提供了创建复杂动画的能力,包括淡入淡出、滑动、缩放等效果。同时,`dojox.fx`提供了更多的特效和动画组合。 ...
Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,涵盖了从DOM操作、事件处理到AJAX通信等多个方面。Dojo的核心在于它的模块化系统,这使得开发者可以按需加载代码,提高应用的性能和可维护...
`dojo/request`是Dojo 1.7引入的新API,它对xhr进行了封装,提供了更简洁的接口。 在实际开发中,Dojo的工具集如Build System也十分有用。它允许开发者对项目进行优化,包括合并、压缩和混淆JavaScript及CSS文件,...
10. **dojo.on**: Dojo 1.7引入了`dojo/on`模块,它提供了更现代、更符合DOM Level 2事件接口的事件处理方式,同时兼容老版本的`dojo.connect`。 以上所述是Dojo 1.6在DOM操作方面的核心功能。通过这些API,开发者...
这个"Dojo官方教程中文翻译完美版"为开发者提供了全面了解和掌握Dojo工具集的宝贵资源。 在Dojo框架中,有几个核心概念和关键组件是学习的重点: 1. **模块系统(AMD,Asynchronous Module Definition)**:Dojo是...
这个"dojo 官方教程 中文翻译"是针对Dojo框架的全面指南,帮助中文用户更好地理解和应用Dojo。 在Dojo官方教程中,你可以学习到以下核心知识点: 1. **Dojo基础**:了解Dojo的核心概念,如dojo/_base模块,这是...
dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档
Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,包括AJAX、DOM操作、动画效果、国际化、模块化等。这个“dojo 离线API”是官方文档的英文原版,旨在帮助开发者在没有网络连接的情况下也能...
Dojo 是一个功能丰富的 JavaScript 库,它提供了一系列模块化、面向对象的工具,用于构建高性能的 Web 应用程序。在 Dojo 中,模块和包的概念是核心组成部分,它们帮助开发者组织和管理代码,使其更易于维护和重用。...
《dojo中文文档-dojo手册》提供了全面而深入的Dojo框架知识,这是一份非常有价值的资源,对于想要理解和掌握Dojo JavaScript库的开发者来说至关重要。Dojo是一个强大的JavaScript工具包,它提供了丰富的功能,包括...
dojo/store是Dojo 1.7引入的新API,它简化了数据操作,提供了增删改查的基础操作。 Dojo的异步通信主要通过dojo/xhr和dojo/io模块实现,支持GET、POST等HTTP请求,同时提供了处理JSONP、SOAP等跨域数据交换的解决...