老实说,我不明白RequireJS的好处。如果我使用UglifyJS缩小并连接我的所有文件,并在关闭的</body>标记之前放置单个得到的JS文件,我还需要使用RequireJS吗?除了在我的页面大小上增加15 to之外,RequireJS还提供了UglifyJS无法获得的好处?
发布于 2013-09-30 21:31:25
使用requireJs的要点是要有一种合理的方法来模块化代码。假设您有一个有上千行代码的应用程序,您不想在一个文件中处理所有这些。因此,如果开始将其拆分为不同的文件,则需要一种方法以正确的顺序加载所有单个文件。当然,您可以创建20个脚本标记,并确保它们的顺序是正确的,但是随着代码的增长,您必须添加更多的脚本标记,而对于每个文件,您必须找到正确的位置。这就是所需的is的好处。
假设您有一个3脚本,A.js依赖于B.js,而后者依赖于C.js
使用脚本标记,它将如下所示:
<script src="C.js"></script>
<script src="B.js"></script>
<script src="A.js"></script>
//A.js
console.log('A' + B)
//B.js
B = 'B' + C
//C.js
C = 'C'
})带要求
<script src="require.js" data-main="A.js"></script>在每个脚本中,您都声明了依赖关系:
//A.js
require(['B.js'], function (B) {
console.log('A' + B)
})
//B.js
define(['C.js'], function (C) {
return 'B' + C
})
//C.js
define([], function () {
return 'C'
})这是一个非常简单的例子,但重点是您不必关心模块的顺序,因为需求is按正确的顺序加载模块。
回到您的问题,优化器更多地是一个加法,所以如果您有一个适合单个文件并且仍然可维护的小代码库,那么只需使用uglifyJs即可。但是,如果您想将代码拆分到模块中,则需要is。
发布于 2013-09-30 22:10:48
UglifyJS和RequireJS有着非常不同的目的,两者都可以适用于您的情况。
RequireJS和异步模块定义的基本思想是将代码分解成更小的块,从而使代码更易于管理。就业绩而言,它有两个主要好处:
一个很好的例子是图表库。浏览器使用不同的标准来呈现图形: svg、vml、canvas等。图表库将为这些标准中的每一个提供代码,但在运行时它只会加载与特定设备和浏览器相关的部分。
发布于 2013-09-30 21:15:41
好吧,如果您对站点上的每个页面使用一个文件,那么代码重用将是非常糟糕的。
您不希望将相同的代码复制/粘贴到每个页面上。这些文件也不会被缓存,这将大大增加页面加载时间。
另见:‘s的“为什么”页面
https://stackoverflow.com/questions/19103849
复制相似问题