2017-04-06 109 views
0

我已經使用Webix來構建我的整個Web應用程序,所以它的客戶端很重。我是否認爲在需要模塊時不應該使用require.js異步屬性?在Webix(客戶端框架)中使用Require.js的異步屬性?

因此,而不是使用data-main,我會爲每個頁面創建一個require.config?

+0

什麼是異步屬性? RequireJS沒有定義一個async屬性。有一個名爲async的HTML屬性,但主要不是RequireJS的東西?你的意思是'data-main'處處提到你問題中的一個屬性? – Louis

+0

該文檔指出,使用data-main意味着依賴性異步加載 - 這是我所指的屬性。 – Twigs

回答

1

不知何故,你已經推斷使用data-main使RequireJS異步操作。但事實並非如此。使用或不使用data-main沒有區別:RequireJS會異步加載你的模塊。當您在瀏覽器中使用RequireJS時,情況總是如此。即使當你看到這樣的代碼:

define(function (require) { 
    var foo = require("foo"); 
    [...] 
}); 

這是靜悄悄地轉換到異步形式:RequireJS分析了回調的代碼,翻出的依賴,將其加載異步,然後將控制權交給回調。那時,require調用只是在表中查找,但是這些模塊是事先異步加載的。

「RequireJS異步加載模塊」的異常是如果您在Node中使用RequireJS。在節點中使用它時,可以同步加載模塊。但data-main不是那裏的一個因素。

+0

感謝您解決這個問題。是的,我想你可以通過不使用data-main(http://requirejs.org/docs/api.html)異步加載依賴。所以,當我這樣做:'require([「./common」],函數(){(「」webix「,」tinymce「]}}這並不意味着.common會先加載,然後webix和tinymce會按照這個順序接下來加載? – Twigs