`

dojo1.7翻译 通过dojoConfig来配置dojo

    博客分类:
  • Dojo
 
阅读更多

原文地址:http://dojotoolkit.org/reference-guide/1.7/dojo/_base/config.html#dojo-config

 

dojo.config 

位置 dojo/_base/config 文件夹中

从版本v0.4开始使用

以前不叫dojoConfig而是叫djConfig

 

通过设置,可以影响到以下一些功能

1.使用dojo.parser解析dijit控件的触发

2.调试日志的使用

3.设置国际化

4.将一些dojo的组件放置于非指定的位置

 

dojo.config的使用

dojo.config是在dojo启动时起作用的,我们有三种方法来配置config

1.在<script>标签中使用data-dojo-config属性

2.在使用dojo核心库前先创建一个dojoConfig对象

3.使用用户自定义编译

 

下面是示例

1.通过属性来配置

这是比较流行一种做法,一般是在引用核心dojo库时使用这个属性

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Dojo dojo.config Tutorial</title>
    <script type="text/javascript"
            src="http://ajax.googleapis.com/ajax/libs/dojo/1.7/dojo/dojo.js"
            data-dojo-config="parseOnLoad: true, isDebug: true"></script>
</head>
<body>
    <p>...</p>
</body>
</html>

 

注意:使用data-atrribute的这种写法是从1.6版本开始推荐的一种方法,以前的djConfig方法虽然到2.0版本都还能用,但已经是不建议使用的了。

在data-dojo-config中是使用逗号分割每个属性的。

注意:如果你通过了一个代理重写了HTML的内容影响了内容的脚本内容从而可能会使dojo功能失效。现在已经知道的是通过UMTS宽带连接是会出现这个问题的。

 

2.创建对象来配置

如果配置的内容比较多的话,使用创建对象来配置会好些。在引用dojo核心库前先配置对象

 

<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Dojo dojoConfig Tutorial</title>
    <script type="text/javascript">
        var dojoConfig = {
            parseOnLoad: true,
            isDebug: true,
            locale: 'en-us',
            extraLocale: ['ja-jp']
        };
    </script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.7/dojo/dojo.js"></script>
</head>
<body>
    <p>...</p>
</body>
</html>

 

 在这个例子里,我们设置了本地化为英国,但是对于日本的资源也加载进来。

通过属性配置或使用对象配置,其作用都是一样的。在加载完成后,dojo.config就是全局的一个实例。因此它也就经常是作为一个只读属性而出现。

 

3.通过自定义创建

关于自定义构建的信息参见 dojo构建系统脚本文档

 

设置参数

 

好了,现在你知道如何设置全局参数来使用dojoConfig,你可能想知道怎么进行参数设置。一个快速参考的方法是去查dojo.config的的API。

 

你在dojoConfig中的设定是用来覆盖默认设置:

告诉dojo的加载调试核心库资源

告诉dojo的语言和本地化资源加载核心库

告诉道场在哪里能找到事件中的关键资源,如你使用的是一个定制的命名方案或跨域(xdomain)建立的资源

下面,我们将详细描述下这些配置设置

 

 

设置调试参数

 

dojoConfig可以快速简便的设置调试功能的开启和关闭。无论您是否正在使用一个自编译的,或解压缩的dojo源码,您都可以使用调试功能,使用的参数如下:

 

isDebug:true

当设置为“true”,isDebug将加载Dojo的扩展调试工具,通过Firebug的,或精简版的Firebug。无论您使用何种浏览器,你都可以得到一个调试窗口。在调试控制台中,你可以运行任意代码语句,通过内置的Dojo的控制台转出功能还可以查看报表输出。这个设置的默认值是“假”。

 

debugContainerId:“yourContainerId”

如果指定了ID,而在页面展现时dojo将寻找指定id的元素,并将该元素放入到Firebug Lite的控制台窗口。这允许开发人员在控制台窗口显示额外的信息,并轻松地在自己的脚本来引用。默认情况下,ID是没有关联的。

 

debugAtAllCosts:true(dojo小于1.7的版本)

此设置强制使用的xdomain装载机,以确保所有加载的模块有自己的脚本标记。这使错误消息中的实际行号,在大多数的调试工具和脚本的URL的有完整的列表。有更多的信息在在这里与Dojo的调试。请注意如果你的代码依赖于同步装载机,即不裹在dojo.ready/ dojo.ready而你传递一个变量dojo.require(而不是字符串文字),将可能破坏你的应用程序。

版本1.6有此设置的问题; http://bugs.dojotoolkit.org/ticket/12608更多信息,请参阅。它已经在1.7中删除,请参阅发行说明。


设置国际化参数
适用于I18N的两个dojoConfig变量:

locale: “en-us”
默认情况下,根据浏览器navigator对象的语言环境确定应用程序的语言环境。然而,开发人员可以强制使用应用服务器中的区域设置,建立基于用户偏好的语言环境的默认语言环境。 Dojo的语言环境设置,必须是建立在初始化时,初始化之后就不能更改。参数是一个字符串数组代表的语言环境。语言字符以破折号分开且所有字符小写。

extraLocale: [“ja-jp”]
要加入多语言环境,开发人员可以指定额外的locale文件,也可以指定一个语言环境的集合。
用户多语言切换的情况下使用extraLocale。它通常是更有效和首选的重载页面方案。

设置指定文件夹路径
有时,开发人员可能选择在标准位置(即相对路径下的dojo/dojo.js的核心文件)的资源没有找到。在这种情况下,有必要告诉dojo在哪里可以找到这些资源。如下此提供dojoConfig参数:

baseUrl: “/assets/mydojo/”
当同进使用多个版本的道场在给定的站点,或已更名为创建一个自定义生成的baseURL参数应该用来表示核心dojo.js文件时,在使用<base>标记时可以误导一些浏览器(如IE6中)的网站。baseURL的值应该包含dojo.js文件的目录。该值应始终定义结束斜杠(/)字符。
paths: {“myApp”:”/other/path/to/myApp”}

modulePaths: {“foo”: ”../../bar”}
在1.7之前。是一些过时的路径配置标志。使用这个参数相当于调用dojo.registerModulePath(“foo”, ”../../bar”) ,这可以让dojo找到自定义模块。有关创建和使用自定义模块的更多信息,请参阅dojo.registerModulePath。

其它的一些设置
afterOnLoad: true
(默认为false)。如果设置为true,则会在页面加载完成后把dojo注入到页面中。只有自定义构建dojo的才有效,正常的版本无效。
var dojoConfig = { afterOnLoad:true };
window.onload = function(){
    var d = document.getElementsByTagName("head")[0].appendChild(document.createElement('script'));
    d.src = "my/dojo.js";
    d.type = "text/javascript";
}
 skipIeDomLoaded: false
只针对IE,将跳过DOMContentLoaded方法,如果有的功能是要在DOM加载后才能起效的,这可能会导致错误。如果这个设置为true,则dojo.ready是不会被触发的,除非有事件来触发。如果你想能立即触发,可以在页面底部加上一个dojo._loadInit()函数,如果使用了多个版本的,记住要改dojo的这个名子

设置dojo的模块
这是dojo最后一个配置的方法。由于dojoConfig是一个全局的配置,如果要创建一个新的dojox模块,就可以使用全局的一些配置和资源了。对于模块资源的配置,最好去去API或源码中查怎么来配置,一个不错的例子就是dojox.storage这个模块,这是个储存功能的模块。可以设置成由哪个储存提供商(google),禁用和启用等等
var dojoConfig = { disableWhatWGStorage: true }
 
在代码中使用自定义的dojoConfig
全局配置十分有用。你也可以配置你自定义的一些配置。
在dojo.js加载完成以后,dojoConfig中的配置参数又会被传到dojo.config中,在这时你就可以来解析你自定义的配置了。
var dojoConfig = { parseOnLoad:true, myCustomVariable:true }
 上面,我们定义了一个自定义的myCustomVariable这个配置参数。要使用参数有用,则要使用dojo.config来设置。
// Dojo 1.7+ (AMD style)
require(["dojo/_base/declare", "dojo/_base/config"], function(declare, config){
    declare("my.Thinger", null, {
        thingerColor: (config.myCustomVariable ? "wasTrue" : "wasFalse"),
        constructor: function(){
            if(config.myCustomVariable){ ... }
        }
    });
});

// Dojo < 1.7
dojo.declare("my.Thinger", null, {
    thingerColor: (dojo.config.myCustomVariable ? "wasTrue" : "wasFalse"),
    constructor: function(){
        if(dojo.config.myCustomVariable){ ... }
    }
});
 

兼容性
向下兼容,废弃的djConfig当前还可以使用。
注意,如果同时使用dojoConfig和djConfig,则djConfig将会被忽略
还要注意,如果dojoConfig,djConfig,data-dojo-config同时使用时,将优先使用data-dojo-config

 

分享到:
评论

相关推荐

    Dojo 1.7 版本注释.docx

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

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

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

    Dojo1.7 Api chm

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

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

    总的来说,Dojo 1.7的AMD支持和模块拆分带来了更高效、灵活的开发体验,同时也需要注意与旧版本的兼容性和特定模块的使用方式。开发者应确保了解并适当地调整代码以利用这些新特性。对于遇到的兼容性问题,可以关注...

    dojo 源码1.7汇总

    在Dojo 1.7 中,还引入了"声明式编程"的概念,允许开发者通过HTML来定义Dijit组件和它们的属性,降低了学习曲线,提高了开发效率。例如,可以这样声明一个按钮: ```html &lt;button data-dojo-type="dijit/form/...

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

    通过正确配置djConfig,开发者能更好地优化Dojo的性能和功能。 总结来说,Dojo API 中文参考手册是Dojo框架开发者的重要资源,它详尽地介绍了Dojo的架构、包系统、Widget机制以及各种实用包的功能,为开发者提供了...

    dojo-release-1.7.1-src

    Dojo 1.7 引入了异步模块定义(AMD)模式,通过`dojo.require`和`dojo.provide`实现了模块化的代码组织。AMD允许开发者按需加载依赖,减少了初始页面加载的时间,并提高了代码的可维护性。同时,`dojo/has`特性可以...

    dojo-release-1.7.3

    Dojo 1.7引入了声明式编程的概念,使得创建和配置UI组件变得非常简单。通过在HTML中使用data-dojo-type和data-dojo-props属性,开发者可以直接在模板中声明dijit组件,减少了与JavaScript交互的复杂性。 5. **dojo...

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

    开发者可以通过`dojo/_base/lang.extend`扩展自定义组件。 6. **dojo/Stateful**:这个基类提供了属性管理和观察者模式,使得具有状态的对象可以被其他对象观察和响应状态变化。 7. **dojo/aspect**:提供面向切面...

    dojo最新版本

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

    ArcGIS API for JavaScript 开发教程+DOJO指南+配置教程

    此外,还会涉及如何使用DOJO的配置机制来管理应用的依赖和设置。 文件列表中的"JS"可能是指包含的JavaScript代码示例或脚本,这些代码可以帮助你更好地理解和实践教程中的知识点。通过实际操作,你可以更深入地学习...

    dojo.zip

    4. **工具集和组件**:dojo包含了丰富的UI组件,如按钮、表单、日历、树形视图等,这些都可以通过`dijit`模块来访问。此外,`dojox`模块则提供了更高级和实验性的功能,如图表、GIS地图等。 5. **数据绑定**:dojo...

    图书:Dojo入门

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

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

    通过深入学习这个中文翻译教程,开发者不仅可以了解到Dojo的各个组成部分,还能学习到如何有效地组织和构建基于Dojo的应用程序。此外,了解Dojo的模块化设计、组件化UI以及数据处理能力,将有助于提升JavaScript...

    Dojo 入门 + Dojo 工具包系列 + Dojo 使用技巧 ......

    同时,设置Dojo的配置选项,如dojoConfig,用于定义模块加载的路径、调试模式等。 在JavaScript中,尤其是与Dojo交互时,理解和使用hash(对象)至关重要。如示例所示,hash是以键值对的形式存储数据,通过点操作符...

    dojo的config()官方介绍 pdf格式

    如果Dojo的核心组件被重命名或者放置在非标准的位置,可以通过`dojoConfig`来指定这些资源的具体位置。 #### 其他选项 除了上述提到的配置选项外,还有许多其他选项可用于更细致的定制需求,比如配置Dojo扩展模块...

    DOJO 学习笔记 dojo

    在 Dojo 中,使用 `dojo.require` 来声明所需的模块和包,类似于其他编程语言中的导入或使用语句。 `djConfig` 是 Dojo 的全局配置对象,允许你在页面加载前设置 Dojo 的行为。例如,`isDebug` 属性可以设置为 `...

    dojo 官方教程 中文翻译

    通过阅读"dojo 官方教程中文翻译(完整版20170320).pdf",你将能深入理解Dojo的各个方面,并能有效地在你的项目中应用Dojo。同时,"说明.txt"文件可能包含了关于教程的使用说明、版权信息或其他重要提示,阅读它...

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

Global site tag (gtag.js) - Google Analytics