dojo
dojoConfig로 Dojo 구성하기
수색…
비고
dojoConfig 오브젝트 (이전의 djConfig )를 사용하면 dojo 툴킷의 다양한 측면에 대한 옵션 및 기본 동작을 설정할 수 있습니다. 예제를 통해 가능한 것이 무엇인지, dojoConfig를 코드에 어떻게 사용할 수 있는지 설명 할 것입니다.
dojoConfig는 dojo.js가로드되기 전에 스크립트 블록에 정의됩니다. 이것이 중요합니다. 역전하면 구성 속성이 무시됩니다.
DojoConfig로드
아래 샘플에서는 모든 구성 값을 포함하는 하나의 글로벌 javascript 객체 인 dojoConfig 를 작성합니다.
주 : dojo.js가로드되기 전에 dojoConfig가 스크립트 블록에 정의됩니다. 이것이 중요합니다. 역전하면 구성 속성이 무시됩니다.
<script>
dojoConfig= {
has: {
"dojo-firebug": true
},
parseOnLoad: false,
foo: "bar",
async: true
};
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/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, parser, 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>
<!-- and later in the page -->
<div id="dialog" data-dojo-type="dijit/Dialog" data-dojo-props="title: 'dojoConfig / dojo/_base/config'"></div>
로더 구성
Dojo 1.7은 툴킷의 새로운 AMD 모듈 형식을 수용하기 위해 새로운 로더를 받았다. 이 새로운 로더는 패키지, 맵 등을 정의하는 데 중요한 몇 가지 새로운 구성 옵션을 추가했습니다. 로더에 대한 자세한 내용은 Advanced AMD Usage 튜토리얼을 참조하십시오. 중요한 로더 구성 매개 변수는 다음과 같습니다.
baseUrl : 경로 또는 URL로 변환 할 때 모듈 식별자 앞에 붙는 기본 URL입니다.
baseUrl: "/js"
packages : 패키지 이름과 위치를 제공하는 객체의 배열입니다.
packages: [{
name: "myapp",
location: "/js/myapp"
}]
map : 모듈 식별자의 경로를 다른 경로에 매핑 할 수 있습니다.
map: {
dijit16: {
dojo: "dojo16"
}
}
경로 : 파일 경로에 모듈 ID 조각의지도 :
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" }
]
};
async : Dojo 코어를 비동기 적으로로드해야하는지 정의합니다. 값은 true, false 또는 legacyAsync 일 수 있습니다. 그러면 로더가 레거시 크로스 도메인 모드에 영구적으로 배치됩니다.
async: true
parseOnLoad : true 인 경우, DOM 및 모든 초기 종속성 (dojoConfig.deps 배열에있는 것을 포함)이로드 된 경우 dojo / parser로 페이지를 구문 분석합니다.
parseOnLoad: true
It is recommended that parseOnLoad be left at false (it defaults to false, so you can simply omit this property), and that developers explicitly require dojo/parser and call parser.parse().
deps : Dojo가로드되면 즉시로드해야하는 리소스 경로의 배열입니다.
deps: ["dojo/parser"]
callback : 일단 deps가 검색되면 실행할 콜백 :
callback: function(parser) {
// Use the resources provided here
}
waitSeconds : 모듈에 대한로드 시간 초과 신호를 보내기 전에 기다리는 시간. 기본값은 0입니다 (영원히 대기).
waitSeconds: 5
cacheBust : true이면 모듈 캐싱을 피하기 위해 시간을 각 모듈 URL에 쿼리 문자열로 추가합니다.
cacheBust: true
이제 기본 매개 변수를 사용하는 간단한 데모를 작성해 보겠습니다. 하나의 매우 일반적인 시나리오는 CDN의 Dojo Toolkit을 로컬 모듈과 함께 사용하는 것입니다.
/documentation/tutorials/1.10/dojo_config/demo 공간에서 모듈과 함께 Google CDN을 사용한다고 가정 해 보겠습니다.
<!-- Configure Dojo first -->
<script>
dojoConfig = {
has: {
"dojo-firebug": true,
"dojo-debug-messages": true
},
// Don't attempt to parse the page for widgets
parseOnLoad: false,
packages: [
// Any references to a "demo" resource should load modules locally, *not* from CDN
{
name: "demo",
location: "/documentation/tutorials/1.10/dojo_config/demo"
}
],
// Timeout after 10 seconds
waitSeconds: 10,
map: {
// Instead of having to type "dojo/domReady!", we just want "ready!" instead
"*": {
ready: "dojo/domReady"
}
},
// Get "fresh" resources
cacheBust: true
};
</script>
<!-- Load Dojo, Dijit, and DojoX resources from Google CDN -->
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<!-- Load a "demo" module -->
<script>
require(["demo/AuthoredDialog", "dojo/parser", "ready!"], function(AuthoredDialog, parser) {
// Parse the page
parser.parse();
// Do something with demo/AuthoredDialog...
});
</script>
패키지 설정을 사용하여, 우리는 로컬 /documentation/tutorials/1.10/dojo_config/demo/ 디렉토리를 가리키며, /documentation/tutorials/1.10/dojo_config/demo/ demo/* 에 대한 모든 참조는 dojo , dijit 및 dojox 에 대한 참조를 Google CDN에서 dijit 수 있도록했습니다. 데모 패키지가 정의되지 않았다면 demo/AuthoredDialog 대한 요청은 //ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/demo/AuthoredDialog.js 로 //ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/demo/AuthoredDialog.js 입니다. 또한 준비를 dojo/domReady 와 연결하여 별칭을 사용 dojo/domReady .