我正在创建一个javascript模块,用于存储某些网页使用的某些功能。例如:
define(['...',...], function() {
return {
func1: function(){...},
func2: function(){...},
func3: function(){...},
}
});
我在page1.html上有一个模块只使用func1,page2.html上的其他模块只使用func2,依此类推。在这种情况下,我想知道requirejs加载所需的函数或加载整个对象。
我打算构建在网页之间共享的模块。如果requirejs加载整个对象,我担心下载不必要的脚本需要更多时间。你对这个问题有什么看法吗?
答案 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将脚本捆绑到几个文件中。