dojo/CDN利用時の注意


Total: 3141 / Today: 1 / Yesterday: 1

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

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
//<![CDATA[
google.load("dojo", "1.2.3");
//]]></script>

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

djConfig = {
	parseOnLoad: true,
	isDebug: true, 
	preventBackButtonFix:false, 
	baseUrl: './',
	modulePaths:{'lorelei': '/js/lorelei'

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

まとめ

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

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
//<![CDATA[
djConfig = {
	parseOnLoad: true,
	isDebug: true, 	preventBackButtonFix:false, 
	baseUrl: './',
	modulePaths:{'lorelei': '/js/lorelei'

ご存じの方も多いと思うが、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拡張を行わない場合)はスタイルシートの読み込みは不要。


Last Modified: 2008-10-18 10:58:41