dojo/CDN利用時の注意
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'
ここでは、Loreleiのdojo.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