Dojo 学习--配置
有三种方法可以dojo进行配置 第一种是用到dojoConfig对象(之前用的是djConfig对象) 分别说明: dojoConfig和djConfig在1.6之前,只有djConfig。1.7开始,配置对象变为dojoConfig. 现在djConfig和dojoCofig都有效。但是,djConfig在2.0版本会失效。所以建议使用dojoConfig dojoConfig这个dojoConfig配置对象,某些配置项会对module loader和dojo的组件起到作用,甚至可以影响用户的整个应用功能。这个配置对象设定的配置是全局性的。以下是dojo官方给出的一个例子,在这里做了一点点小改动,由DNS加载dojo变为使用本地dojo。 <!DOCTYPE html>
<html>
<head>
<title>dojo-dialog-test</title>
<script> dojoConfig= { has: { "dojo-firebug": true },parSEOnLoad: false,foo: "bar",async: true,packages:{ name:"demo",location:"../common/myJS" } }; </script>
<script src="../common/dojo-release-1.12.2/dojo/dojo.js"></script>
<script> // Require the registry,parser,Dialog,and wait for domReady require(["dijit/registry","dojo/parser","dojo/json","dojo/_base/config","dijit/Dialog","dojo/domReady!"],function(registry,JSON,config) { // Explicitly parse the page parser.parse(); // Find the dialog var dialog = registry.byId("dialog"); // Set the content equal to what dojo.config is dialog.set("content","<pre>" + JSON.stringify(config,null,"t") + "```"); // Show the dialog dialog.show(); }); </script>
</head>
<body>
<div id="dialog" data-dojo-type="dijit/Dialog" data-dojo-props="title: 'dojoConfig / dojo/_base/config'">something will show</div>
</body>
</html>
显示的结果由最开始的”something will show”变为下面的: dojoConfig配置需要注意的地方 这个例子中通过dojoConfig来配置了选项:has,parSEOnLoad,async,packages,还有一个自定义选项:foo.各配置的详细解释,见下面。 data-dojo-configdojo的配置不但可以通过dojoConfig来设定,还可以通过在标签 <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js" data-dojo-config="has:{'dojo-firebug': true},parSEOnLoad: false,foo: 'bar',async: 1"> </script>
不管是通过dojoConfig,还是data-dojo-config配置,,最终的值都会被写入到对象dojo/_base/config。所以以上例子,可以通过dojo/_base/config这个对象来展示所有的dojoConfig配置。 dojoConfig,djConfig和data-dojo-config的关系djConfig任然可以用是为了可以向下兼容,现在最好使用dojoConfig. 但是,若djConfig和dojoConfig都定义了,则djConfig会被忽略。若是 使用require()来配置require({ cacheBust:new Date(),waitSeconds:5 });
注意: asyn标志和任何hash.js 需要在dojo被加载的时候定义,只能在dojoConfig和date-dojo-config对象里定义。 Dojo中的配置选项1,has()Dojo1.7+采用的配置选项。在has()中可以设置是否启用某个功能例如是否采用firebug调试,是否采用AMD的工厂扫描功能: 2 Debug/Firebug Lite 配置为了在老版本的IE中启用Firebug Lite辅助调试,我们可以设置dojo-firebug特性(isDebug仍然可以启用它,但是dojo-firebug在异步模式中将更快加载)。如果你有Firebug或者其他console(控制台)可用,它什么事都不做。但是如果你没有console,他将载入Dojo的Firebug Lite版本,并且在页面底部创建一个console UI,这方便了在早期的IE中或者其他不支持调试的浏览器中调试。 为了设置debug信息的显示,我们可以设置 3 Loader 配置为了支持Dojo 1.7之后的新的AMD module格式,dojo也有了新的loader。新的loader有些新的配置选项,这些新的选项在定义package,maps等方面是很重要的。包括以下: 3.1 baseUrl /--dojo
/--dojo.js
/--some
/--other
/--module.js
/---index.html
现在定义了some.other.module这个模块,引入: /--common
/--dojo-release-1.12.2
/--dojo
/--dojo.js
/--myJs
/--myModule.js
/---index.html
现在定义并引入模块: GET http://localhost:8080/common/dojo-release-1.12.2/myJS/myModule.js 404 (Not Found)
这时候就需要设置一下baseUrl解决问题 dojoConfig={
async:true,baseUrl:"/myJS"
}
3.2 packages /
index.html
dojo-release-1.10.4
/dojo
/dojo.js
/dojox
/dijit
mytest
/myModule.js
var dojoConfig={
baseUrl:"",tlmSiblingOfDojo: false,packages:[
{"name":"dojo","location":'dojo-release-1.10.4/dojo'},{"name":"mytest","location":"mytest",main:"myModule"},]
};
name:the name of the package. 即包含了自定义module js文件的文件夹名,如此例中的“mytest”。 location:the location of the package. 可以是基于baseUrl的相对路径也可以是绝对路径。 3.3 map map: {
dijit16: {
dojo: "dojo16"
}
}
3.4 paths var dojoConfig = {
packages: [
"package1","package2"
],paths: {
package1: "../lib/package1",package2: "/js/package2"
}
};
// ...is equivalent to:
var dojoConfig = {
packages: [
{ name: "package1",location: "../lib/package1" },{ name: "package2",location: "/js/package2" }
]
};
3.5 async async: true
3.6 parSEOnLoad parSEOnLoad: true
3.7 deps deps: ["dojo/parser"]
3.8 callback callback: function(parser) {
// Use the resources provided here
}
3.9 waitSeconds waitSeconds: 5
3.10 acheBust cacheBust: true (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |