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

When to use Requirejs and when to use bundled javascript?

本文关键字:何时使 javascript Requirejs      更新时间:2023-09-26

这对网络爱好者来说可能是个愚蠢的问题。但我对此有点困惑。现在,我有一个应用程序,我正在使用几个Javascript文件来执行不同的任务。现在,我正在使用Javascript bundler来组合和缩小所有文件。因此,在运行时只有一个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的meg,这将是疯狂的,并使初始启动速度慢得令人无法接受。

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

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