Requirejs加载全部或部分依赖对象?

时间:2015-03-26 10:21:34

标签: javascript requires

我正在创建一个javascript模块,用于存储某些网页使用的某些功能。例如:

define(['...',...], function() {
    return {
         func1: function(){...},
         func2: function(){...},
         func3: function(){...},
      }
});

我在page1.html上有一个模块只使用func1,page2.html上的其他模块只使用func2,依此类推。在这种情况下,我想知道requirejs加载所需的函数或加载整个对象。

我打算构建在网页之间共享的模块。如果requirejs加载整个对象,我担心下载不必要的脚本需要更多时间。你对这个问题有什么看法吗?

1 个答案:

答案 0 :(得分:1)

将所有方法分组到一个模块中将导致require返回整个对象yes。如果你只想加载page1上的func1,第2页上的func2等,那么你最好在它自己独立的模块和文件中声明每个。然后在必要时加载每个模块。

// func1.js
define(['...'], function(){
    return {
        func1 : function(){}
    }
})

// func2.js
define(['...'], function(){
    return {
        func1 : function(){}
    }
})

requirejs documentation为多项应用提供了一个很好的示例:https://github.com/requirejs/example-multipage

注意:在许多情况下,最好在一个http请求中实际加载所有脚本,而不是为应用程序中的每个文件发出异步请求。许多大型应用程序使用r.js将脚本捆绑到几个文件中。