什么时候使用 Requrejs,什么时候使用捆绑的 javascript?

这对网友来说可能是个愚蠢的问题。但我对此有点困惑。现在,我有一个应用程序,其中我使用两个 Javascript 文件来执行不同的任务。现在,我使用 Javascript 打包机来组合和缩小所有文件。因此,在运行时只有一个 app.min.js 文件。现在,必要条件用于在运行时加载模块或文件。所以,问题是,如果我已经在一个文件中包含了所有内容,那么我是否需要必要条件?或者,在什么样的用例场景中,我可以使用需求和/或 bundler?

请让我知道,如果任何进一步的细节是必要的。

14975 次浏览

通常,在开发期间,您只能在其加载形式中使用 RequreJS。完成站点并准备部署之后,可以缩小代码。这里的优点是 RequreJS 确切地知道您的依赖项是什么,因此可以轻松地按照正确的顺序缩小代码。RequreJS 网站上是这么写的:

一旦您完成了开发,并且希望为最终用户部署代码,就可以使用优化器将 JavaScript 文件组合在一起并缩小它。在上面的示例中,它可以将 main.js 和 helper/util.js 组合成一个文件并缩小结果。

这是许多精通 javascript 的开发人员之间激烈争论的问题。许多其他语言都有一个“编译”阶段,即将整个程序捆绑起来进行部署(JBoss 的。脑海中浮现出 WAR 文件)。来自更传统背景的程序员通常喜欢这种方法。

Javascript 在最近几年发展迅速,因此很难制定出确切的最佳实践,但是那些欣赏 Javascript 更多功能性的人通常更喜欢模块加载方法(就像 Reque.js 使用的那样)。

我编写了 Frame.js,它的工作原理与 Reque.js 非常相似,所以我倾向于使用模块加载器方法。

直接回答你的问题,是的,这是一个或另一个。

大多数主张将脚本打包到单个文件中的人认为,这样可以实现更多的压缩,因此效率更高。我相信封装的效率优势在大多数情况下可以忽略不计,因为: (1)模块加载时间分布在整个会话中,(2)单个模块可以压缩到几乎相同的百分比,(3)单个模块可以由服务器和路由器分别缓存,和(4)加载脚本只有当他们需要的时候,最终允许你加载更少的代码为一些用户和更多的代码整体。

从长远来看,如果您能看到动态脚本加载的优势,那么就使用它。如果没有,则将脚本绑定到单个文件中。

这取决于你的申请。如果你制作的服务器端应用程序只有一般的 javascript (小于100kb) ,然后去总捆绑,你可能会很好。

但是,如果你正在开发一个 javascript 应用程序,并且有大量的代码在里面,那么你的需求将会是不同的。

例如,在我的应用程序中,我捆绑了所有的核心文件。有 jQuery,下划线,主干,我的主应用程序文件,我的用户登录系统,我的布局系统,我的通知和聊天系统,都是我的大初始文件的一部分。

但是我还有许多其他的模块,它们不是初始包的一部分,而是在这些模块之后加载的。

论坛、 wiki、 wysiwyg、颜色选择器、拖放、日历和一些动画文件属于第二类。你需要做出合理的决定,什么是常用的和需要立即与什么可以延迟。

如果我立即包含所有内容,我可以得到超过一兆的 javascript,这将是疯狂的,使初始启动慢得无法接受。

第二类在从初始文件触发 initSuccess事件之后开始下载。

但是第二类比第一类更聪明,因为它首先载入更重要的内容。例如,如果你正在查看 wiki,它会在加载颜色选择器之前加载 wiki。