繁体   English   中英

何时使用Requirejs以及何时使用捆绑的javascript?

[英]When to use Requirejs and when to use bundled javascript?

对于网络人来说,这可能是一个愚蠢的问题。 但我对此感到有些困惑。 现在,我有一个应用程序,我使用几个Javascript文件来执行不同的任务。 现在,我正在使用Javascript 捆绑器来组合和缩小所有文件。 因此,在运行时只有一个app.min.js文件。 现在, Requirejs用于在运行时加载模块或文件。 所以,问题是如果我已将所有内容都放在一个文件中,那么我是否需要requirejs? 或者什么是用例场景我可以使用requirejs和/或bundler?

如果需要进一步的细节,请告诉我。

通常,您在开发期间仅在其加载形式中使用RequireJS。 站点完成并准备部署后,您将缩小代码。 这里的优点是RequireJS确切地知道你的依赖是什么,因此可以很容易地以正确的顺序缩小代码。 以下是RequireJS网站上的内容

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

这是许多熟练的JavaScript开发人员中一个备受争议的问题。 许多其他语言都有一个“编译”阶段,整个程序捆绑在一起进行部署(JBoss的.WAR文件会浮现在脑海中)。 来自更传统背景的程序员通常喜欢这种方法。

Javascript近年来已经看到这样的增长,很难确定最佳实践,但那些欣赏Javascript更多功能性的人通常更喜欢模块加载方法(如require.js使用)。

我编写的Frame.js与require.js非常相似,所以我偏向于模块加载器方法。

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

大多数认为将脚本打包到单个文件中的人认为它可以实现更多压缩,从而提高效率。 我相信在大多数情况下,包装的效率优势可以忽略不计,因为:(1)模块加载时间分布在整个会话中,(2)单个模块可以压缩到几乎相同的百分比,(3)单个模块可以缓存单独的服务器和路由器,以及(4)仅在需要时加载脚本最终允许您为一些用户加载更少的代码和更多的代码。

从长远来看,如果您可以看到动态脚本加载的优势,请使用它。 如果没有,请将脚本捆绑到一个文件中。

这取决于您的应用程序。 如果你正在制作一个只有适度的javascript(小于100kb缩小)的服务器端应用程序然后去完全捆绑,你可能会没事的。

但是如果你正在制作一个javascript应用程序并且其中包含大量代码,那么你的需求将会有所不同。

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

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

论坛,wiki,wysiwyg,颜色选择器,拖放,日历和一些动画文件是第二类的一部分。 您需要立即做出合理的决定,以确定哪些是常用的,哪些是可以延迟的。

如果我立即包含所有内容,我可以获得超过一个巨大的javascript,这将是疯狂的,并使初始启动速度慢得令人无法接受。

initSuccess事件从初始文件触发后,第二个类别开始下载。

但第二类比第一类更智能,因为它首先加载了更重要的东西。 例如,如果您正在查看维基,它将在加载颜色选择器之前加载维基。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM