`

dojo1.7翻译 hello,dojo

    博客分类:
  • Dojo
 
阅读更多

原文地址: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>

 运行Demo

 

这段代码中加载了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,然后使用这个模块来加入了动画的效果。

 

0
0
分享到:
评论

相关推荐

    Dojo 1.7 版本注释.docx

    【Dojo 1.7 知识点详解】 Dojo 1.7 是 Dojo Toolkit 重要的版本更新,其中引入了显著的改进和新特性,尤其是对模块加载机制的革新。这一版本的主要焦点在于Asynchronous Module Definition (AMD),这是一种优化...

    Dojo 1.7 中文版本注释功能说明

    【Dojo 1.7 中文版本注释功能说明】 Dojo 1.7 是一个重大的版本更新,其中引入了显著的改进和新特性,尤其是对模块加载机制的革新。这一版本的核心亮点是实现了Asynchronous Module Definition (AMD)机制,这是一项...

    Dojo1.7 Api chm

    《Dojo 1.7 API CHM:深入理解与应用》 Dojo 是一个功能强大的JavaScript工具库,尤其在Web开发领域,它提供了一系列高级功能,包括模块化、数据管理、用户界面构建以及Ajax交互等。Dojo 1.7 API CHM文件是针对这个...

    dojo 1.7 最新dojo包,内含最新的实例若干个。

    7. **dojo/on**: Dojo 1.7 中的事件处理模块`dojo/on`提供了一种统一的方式来绑定和处理DOM事件,它兼容各种浏览器,提升了代码的可移植性和可维护性。 8. **dojo/aspect**: 这是一个面向切面编程(AOP)的模块,...

    dojo 源码1.7汇总

    Dojo 1.7 版本是其历史上的一个重要里程碑,引入了许多改进和优化,包括模块化系统AMD(Asynchronous Module Definition)以及对Dijit UI 框架的增强。 首先,我们来详细了解一下Dojo 的核心部分。Dojo 框架的核心...

    dojo-release-1.7.1-src

    《Dojo 1.7 深入解析与应用实践》 Dojo 是一个全面的JavaScript工具库,专为构建富互联网应用程序(RIA)而设计。这个“dojo-release-1.7.1-src”压缩包包含了Dojo 1.7.1的源代码,为开发者提供了深入了解和自定义...

    DOJO API 中文参考手册,附加注解实例(精心重新排版DOC文档)

    手册中列举了一些常用的Dojo包,如dojo.io用于不同类型的IO传输,dojo.dnd提供拖放功能的API,dojo.string提供了字符串处理方法,dojo.date帮助解析和操作日期,dojo.event处理事件驱动和AOP开发,dojo.back管理撤销...

    dojo-release-1.7.3

    "dojo-release-1.7.3"是Dojo框架的一个特定版本,发布于2012年,这个版本在1.7系列中被认为是稳定且广泛使用的。 1. **模块化系统(AMD)** Dojo 1.7 引入了Asynchronous Module Definition(AMD),这是一种异步...

    dojo最新版本

    Dojo 1.7 引入了AMD,这是一种异步模块定义的加载机制,允许开发者按需加载模块,提高了页面性能。通过`require()`函数,我们可以方便地引入和依赖其他模块。 2. **Dijit UI 库:** Dijit是Dojo的UI组件库,包含...

    dojo.zip

    在Dojo 1.7及以后的版本中,推荐使用`dojo/on`模块来处理事件。 7. **动画效果**:dojo的`dojo.fx`模块提供了创建复杂动画的能力,包括淡入淡出、滑动、缩放等效果。同时,`dojox.fx`提供了更多的特效和动画组合。 ...

    dojo dojo实例 dojo例子 dojo资料 dojo项目 dojo实战 dojo模块 dojo编程

    Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,涵盖了从DOM操作、事件处理到AJAX通信等多个方面。Dojo的核心在于它的模块化系统,这使得开发者可以按需加载代码,提高应用的性能和可维护...

    图书:Dojo入门

    `dojo/request`是Dojo 1.7引入的新API,它对xhr进行了封装,提供了更简洁的接口。 在实际开发中,Dojo的工具集如Build System也十分有用。它允许开发者对项目进行优化,包括合并、压缩和混淆JavaScript及CSS文件,...

    dojo1.6关于DOM相关操作的官方介绍

    10. **dojo.on**: Dojo 1.7引入了`dojo/on`模块,它提供了更现代、更符合DOM Level 2事件接口的事件处理方式,同时兼容老版本的`dojo.connect`。 以上所述是Dojo 1.6在DOM操作方面的核心功能。通过这些API,开发者...

    Dojo官方教程中文翻译完美版

    这个"Dojo官方教程中文翻译完美版"为开发者提供了全面了解和掌握Dojo工具集的宝贵资源。 在Dojo框架中,有几个核心概念和关键组件是学习的重点: 1. **模块系统(AMD,Asynchronous Module Definition)**:Dojo是...

    dojo 官方教程 中文翻译

    这个"dojo 官方教程 中文翻译"是针对Dojo框架的全面指南,帮助中文用户更好地理解和应用Dojo。 在Dojo官方教程中,你可以学习到以下核心知识点: 1. **Dojo基础**:了解Dojo的核心概念,如dojo/_base模块,这是...

    dojo文档 dojo文档 dojo文档

    dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档

    dojo 离线API

    Dojo 是一个强大的JavaScript工具库,它为Web开发提供了丰富的功能和组件,包括AJAX、DOM操作、动画效果、国际化、模块化等。这个“dojo 离线API”是官方文档的英文原版,旨在帮助开发者在没有网络连接的情况下也能...

    DOJO 学习笔记 dojo

    Dojo 是一个功能丰富的 JavaScript 库,它提供了一系列模块化、面向对象的工具,用于构建高性能的 Web 应用程序。在 Dojo 中,模块和包的概念是核心组成部分,它们帮助开发者组织和管理代码,使其更易于维护和重用。...

    dojo中文文档-dojo手册

    《dojo中文文档-dojo手册》提供了全面而深入的Dojo框架知识,这是一份非常有价值的资源,对于想要理解和掌握Dojo JavaScript库的开发者来说至关重要。Dojo是一个强大的JavaScript工具包,它提供了丰富的功能,包括...

    精通Dojo(中文版)

    dojo/store是Dojo 1.7引入的新API,它简化了数据操作,提供了增删改查的基础操作。 Dojo的异步通信主要通过dojo/xhr和dojo/io模块实现,支持GET、POST等HTTP请求,同时提供了处理JSONP、SOAP等跨域数据交换的解决...

Global site tag (gtag.js) - Google Analytics