djConfig介绍
djConfig是Dojo的一个全局变量,可以用于修改Dojo的一些默认配置,如:
1. 使用dojo.parse触发dijit对象的自动解析
2. 在开发阶段设置debug模式
3. 设置国际化和本地化
4. 重命名dojo的核心组件或者把dojo代码放在非标准的路径
使用方法
定义djConfig主要有三种方法:
1. 把djConfig当作一个属性,在引入dojo core脚本的<script>标签里定义djCofig的各个变量,并用逗号分隔,如:
<script type="text/javascript" src="/dojo/dojo.js" djConfig="parseOnLoad: true, isDebug: true"></script>
使用这种方法有一点需要注意,如果通过代理访问这个页面的话,dojo有不能正常工作的可能。第二种方法没有这种问题。
2. 在引入dojo core脚本之前,显式地定义djConfig变量,如:
<head>
<script type="text/javascript">
var djConfig = {
parseOnLoad: true,
isDebug: true,
locale: 'en-us',
extraLocale: ['ja-jp']
};
</script>
<script type="text/javascript" src="http://o.aolcdn.com/dojo/1.4.2/dojo/dojo.xd.js"></script>
</head>
3. 暂时忽略
djConfig配置
一、配置debug模式
isDebug:默认为false。配置是否为debug模式。
debugContainerId:显示debug信息的容器。
debugAtAllCosts:提供了更多debug的功能,暂略。
二、语言和本地化设置
locale:默认情况下,dojo会从浏览器对象中获得locale信息,但也可以强制为dojo指定locale信息。
extraLocale:略
三、配置dojo脚本的位置
dojo脚本的标准默认位置是dojo/dojo.js,如果需要放在不同的位置,或者需要使用不同版本的dojo进行开发的话,可以在djConfig中进行配置。
baseUrl:定义dojo core文件所在的位置。配置值必需要以'/'结尾,并且配置的目录中必需存在dojo.js或者dojo.xd.js文件。
modulePaths:使用这个相当于调用了dojo.registerModulePath方法,关于dojo.registerModulePath方法,以后详细解释。
四、其他配置
afterOnLoad:配置是否要在页面加载后把dojo.js注入到页面中去。默认为false。
skipleDomLoaded:略
五 一个完整的djConfig对象定义如下(值均为dojo的默认值)
<script type="text/javascript">
var djConfig = {
isDebug: false,
debugContainerId: "",
bindEncoding: "",
allowQueryConfig: false,
baseScriptUri: "",
parseWidgets: true
searchIds: [],
baseRelativePath: "",
libraryScriptUri: "",
iePreventClobber: false,
ieClobberMinimal: true,
preventBackButtonFix: true,
};
</script>
isDebug是一个很有用的属性,顾名思义,如果设置为真,则所有dojo.Debug的输出有效,开发时应该设置为true,发布时应该设置为false
debugContainerId同样也是与调试有关的,如果不指定的话,调试信息将会直接利用 document.write输出,这样可能会破坏页面的整体布局,所以你可以指定任何一个可以作为容器的html元素的id作为调试信息输出容器
allowQueryConfig,这个属性指明 dojo是否允许从页面url的参数中读取djConfig中的相关属性,当值为true时,dojo会优先从url参数中读取djConfig的其他属性,比如: http://server/dojoDemo.htm?djConfig.debugContainerId=divDebug
baseScriptUri,一般不需要设置,dojo会自动根据你引用dojo.js的路径设置这个值,比如,<script type="text/javascript" src="../dojo/dojo.js"></script>,自动获取的值便是 ../dojo/
ps: 如果你有多个工程需要同时引用dojo.js的话,建议也把dojo当作一个独立的工程,引用的时候采用绝对路径就可以了
parseWidgets,这个是可以控制dojo是否自动解析具有dojoType的html元素为对应的widget,如果你没有使用任何Widget,建议设置为false以加快dojo的加载速度
searchIds,这是一个字符串数组,定义了所有需要解析为widget的html元素的ID,如果ID不在其中的html元素是不会被解析的,当数组为空数组时,则所有具有dojoType的元素都会被解析
还有一个bindEncoding,是用来设置默认的bind请求的编码方式
至于其它的属性,不是用处不大,就是不知道有什么作用
在实际开发中,可以把djConfig的定义放在一个js文件里,并将其作为第一个引用的js文件,这样应该是最方便的。