2009-08-28 64 views
0

目前我想包括道場從以下兩種CDN(內容分發網絡)來源:道場包括腳本CDN

1)o.aolcdn.com/dojo/1.3.2/dojo/ dojo.xd.js

2)ajax.googleapis.com/ajax/libs/dojo/1.3.2/dojo/dojo.xd.js

好像白天有些時候,Firefox 3.5的拒絕加載dojo庫。 當我執行「dojo.require」語句時,我看到Firebug控制檯中出現錯誤,如「dojo未定義」。也從Firebug進入「Net」標籤,並且沒有看到任何嘗試從上面的dojo庫加載的歷史。

然而,我可以在IE7中打開相同的頁面,它的工作原理。我已經在FireFox中刷新緩存,並殺死並重新打開它(但我正在使用恢復以前的頁面選項)。

今天有一次,當我從AOL 1.3.2切換到1.1時,它曾經工作過一次,然後再也沒有工作過。

感謝, 尼爾

回答

2

聽起來時序問題。你確定你做CDN嗎?訣竅是你不能使用dojo.require()d立即—文件中定義的內容,它們將被異步加載。

基於CDN的應用程序的基本結構是這樣的:

<script src="to/dojo/cdn"></script> 
<script> 
    dojo.require("dojo.this"); 
    dojo.require("dojo.that"); 
    // more dojo.require() 
    // you cannot use dojo.this and dojo.that here 
    dojo.addOnLoad(function(){ 
    // this is crucial: do everything in dojo.addOnLoad(); 
    // now use dojo.this and dojo.that 
    dojo.this(dojo.that); 
    }); 
</script> 

爲了解決你可以做一兩件事:寫一個最小的網頁,該網頁加載道場使用您喜歡的CDN和什麼也不做。在Firefox中打開它,打開Firebug並手動輸入一些簡單的Dojo調用,以查看它是否適用於您。如果沒有,請切換到Net選項卡,查看已撥打電話,何時以及如何結束。

+0

但是我自己在「dojo.addOnLoad」或「dojo.require」聲明中收到了「Dojo未定義」。 – NealWalters 2009-09-01 02:55:49

+0

確定:編寫一個最小的網頁,它使用您最喜愛的CDN加載Dojo並不做任何事情。在Firefox中打開它,打開Firebug並手動輸入一些簡單的Dojo調用,以查看它是否適用於您。如果沒有,請切換到Net選項卡,查看已撥打電話,何時以及如何結束。 – 2009-09-02 01:51:46