原文地址: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中删除,请参阅发行说明。
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"; }
var dojoConfig = { disableWhatWGStorage: true }
var dojoConfig = { parseOnLoad:true, myCustomVariable:true }
// 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){ ... } } });