dojo
dojoConfigを使用したDojoの構成
サーチ…
備考
dojoConfigオブジェクト(以前のdjConfig )では、dojoツールキットのさまざまな側面のオプションとデフォルトの動作を設定できます。例では、可能なこととdojoConfigをコード内で使用する方法について説明します。
dojoConfigは、dojo.jsがロードされる前にスクリプト・ブロックで定義されています。これが最も重要です。逆の場合、設定プロパティは無視されます。
DojoConfigをロードする
以下のサンプルでは、すべての構成値を含むグローバルなjavascriptオブジェクトdojoConfigを作成しています。
注: dojoConfigは、dojo.jsがロードされる前にスクリプト・ブロックで定義されています。これが最も重要です。逆の場合、設定プロパティは無視されます。
<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は、ツールキットの新しいAMDモジュール・フォーマットに対応するために、Dojo 1.7で新しいローダーを受け取りました。この新しいローダーは、パッケージ、マップなどを定義するために重要ないくつかの新しい構成オプションを追加しました。ローダーの詳細については、AMDの高度な使用法のチュートリアルを参照してください。重要なローダー構成パラメーターには、
baseUrl:URLをパスまたは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"]
コールバック:depsが取得された後に実行するコールバック:
callback: function(parser) {
// Use the resources provided here
}
waitSeconds:モジュールのロードタイムアウトを通知するまで待機する時間。デフォルトは0(永遠に待つ):
waitSeconds: 5
cacheBust:trueの場合、モジュールキャッシングを避けるために、各モジュールURLに時間をクエリ文字列として追加します。
cacheBust: true
次に、基本的なパラメータを使用する簡単なデモを作成しましょう。非常に一般的なシナリオの1つは、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>
パッケージ構成を使用することで、すべてのdemo/*への参照はローカルの/documentation/tutorials/1.10/dojo_config/demo/ディレクトリを指していますが、 dojo 、 dijit 、およびdojoxへの参照はGoogle CDNからの参照を許可しています。デモパッケージが定義されていない場合、 demo/AuthoredDialogリクエストは//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/demo/AuthoredDialog.js 。また、readyをdojo/domReady関連付けることによって別名を使用しdojo/domReady 。