0

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

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

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

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

4

1 回答 1

1

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

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

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

requirejs文档为多页应用程序提供了一个很好的示例:https ://github.com/requirejs/example-multipage

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

于 2015-03-26T10:44:45.770 回答