CDNサービス利用時の注意

dojoは、古くからAOL CDNでスクリプトの提供を行っていたり、最近では、Google Codesでもスクリプトが提供が行われるようになってきたが、独自のスクリプトを挿入する場合は注意が必要である。

普通に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の場合、

PluginRenderer::executePluginBlock(): Plugin #code() is not implemented.

のように呼び出すことになる。この場合、dojoの基本的なAPIは利用可能になるが、たとえばデバッグ画面出したい場合などに問題になる。というのは、この方法では、前者のdjConfigを指定できないためである。dojoの初期設定を行う場合は以下のようにgoogle.load("dojo", "1.2.0");の直前にdjConfigを指定する。

PluginRenderer::executePluginBlock(): Plugin #code() is not implemented.

ここでは、Loreleiのdojo.requireで呼び出すLioreleiモジュールを呼び出すための指定をしている。このように、diConfigはgoogle.loadよりも前に置き、独自のモジュールスクリプトを呼び出すときには、baseUrl: './',を追記しなければならない。

まとめ

厳密に言うと、こんな感じになる

PluginRenderer::executePluginBlock(): Plugin #code() is not implemented.

ご存じの方も多いと思うが、dijitやdojoxなどのUI昨日を用いる場合、このclass="tundra"と、スタイルシートのhttp://ajax.googleapis.com/ajax/libs/dojo/1.2.3/dijit/themes/tundra/tundra.cssのtundraという部分は対応している。必ず両方指定すること。

テーマは、tundraのほかにsoria、Loreleiでも使っているnihiloが選べる。dijitと、一部のdojoxを使わない場合(UI拡張を行わない場合)はスタイルシートの読み込みは不要。