#navi(../)
&tooltip(CDN){Contents Delivery Network};サービス利用時の注意
dojoは、古くからAOL CDN external_linkでスクリプトの提供を行っていたり、最近では、Google Codes external_linkでもスクリプトが提供が行われるようになってきたが、独自のスクリプトを挿入する場合は注意が必要である。
普通にdojoを呼び出すように、以下のようにdojo.jsを呼び出す場合は、基本的に問題ない。
<script type="text/javascript" src="http://o.aolcdn.com/dojo/1.2.0/dojo/dojo.xd.js" djConfig="debug:true"></script>
しかし、Google AJAX Language APIの場合、
#code(html)
script type="text/javascript" src="http://www.google.com/jsapi"> external_link
script type="text/javascript">
google.load("dojo", "1.2.3");
}}
のように呼び出すことになる。この場合、dojoの基本的なAPIは利用可能になるが、たとえばデバッグ画面出したい場合などに問題になる。というのは、この方法では、前者のdjConfigを指定できないためである。dojoの初期設定を行う場合は以下のようにgoogle.load("dojo", "1.2.0");の直前にdjConfigを指定する。
#code(javascript)
djConfig = {
parseOnLoad: true, isDebug: true, preventBackButtonFix:false, baseUrl: './', modulePaths:{'lorelei': '/js/lorelei'}
};
google.load("dojo", "1.2.3");
}}
ここでは、Lorelei external_linkのdojo.requireで呼び出すLioreleiモジュールを呼び出すための指定をしている。このように、diConfigはgoogle.loadよりも前に置き、独自のモジュールスクリプトを呼び出すときには、baseUrl: './',を追記しなければならない。
まとめ
厳密に言うと、こんな感じになる
#code(html)
script type="text/javascript" src="http://www.google.com/jsapi"> external_link
script type="text/javascript">
djConfig = {
parseOnLoad: true, isDebug: true, preventBackButtonFix:false, baseUrl: './', modulePaths:{'lorelei': '/js/lorelei'}
};
google.load("dojo", "1.2.3");
link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.2.3/dijit/themes/tundra/tundra.css external_link" />
link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.2.3/dojo/resources/dojo.css external_link" />
・・・略
/head>
body class="tundra">
}}
ご存じの方も多いと思うが、dijitやdojoxなどのUI昨日を用いる場合、このclass="tundra"と、スタイルシートのhttp://ajax.googleapis.com/ajax/libs/dojo/1.2.3/dijit/themes/tundra/tundra.cssのtundraという部分は対応している。必ず両方指定すること。 external_link
テーマは、tundraのほかにsoria、Loreleiでも使っているnihiloが選べる。dijitと、一部のdojoxを使わない場合(UI拡張を行わない場合)はスタイルシートの読み込みは不要。