2016-03-08 89 views
0

我們有一個使用jQuery的JavaScript應用程序,並具有加載庫的以下塊。這在大多數情況下都能正常工作,但隨機時間jquery-1.11.2.min庫似乎無法及時加載jquery-ui.min庫,因此我得到一個ReferenceError,指出jQuery沒有在jquery- ui.min lib。 據我所知應該庫加載順序,所以我不知道爲什麼會這樣,所以任何想法將是巨大的:Jquery間歇性加載導致未定義的錯誤

<script type="text/javascript"> 
    var dojoConfig = { 
     async: true, 
     paths: { 
      "libs": location.pathname.replace(/\/[^/]+$/, '') + "/js/lib", 
      "actions": location.pathname.replace(/\/[^/]+$/, '') + "/js/actions" 
     }, 
     packages: [ 
      { name: "jquery", location: "//code.jquery.com", main: "jquery-1.11.2.min" }, 
      { name: "jqueryui", location: "//code.jquery.com/ui/1.10.3", main: "jquery-ui.min" }, 
      { name: "moment", location: location.pathname.replace(/\/[^/]+$/, '') + "/js/lib/moment", main: "moment" } 
     ] 
    }; 
</script> 
+1

什麼做實際負載?這可能是一個問題。它是否尊重你的訂單?它是否說明了一個請求花費的時間比另一個要長? –

+1

我認爲你需要從jqueryui包到jquery包的依賴。我不知道這樣做的最佳方式,因爲我不知道道場。 – Halcyon

+0

如果您嘗試從本地文件加載而不是CDN加載,問題仍然存在嗎? –

回答

1

你的問題是與async:true財產

jQueryUI的有jQuery的依賴爲此,你必須負載 jQuery和再jQueryUI的時,它的異步它可以加載jQueryUI的,然後jQuery的,這將拋出一個錯誤

EDIT1 如果你想繼續使用async:true屬性然後嘗試喲使用屬性

從站點:DEPS:的資源路徑的陣列一旦道場加載應立即加載: DEPS:[「道場/語法分析器」]

DEPS(模塊標識符字符串數組)/回調(功能) 這些配置變量只適用裝載機已被加載之前。提供時,它們會導致加載程序在完成加載後執行require(deps,callback)。

+0

將其設置爲false通常是一個糟糕的主意,因爲它通常會影響腳本(在執行時會凍結頁面) –

+0

感謝此,真的很有用 – Anto

相關問題