何时使用Requirejs以及何时使用捆绑的javascript
When to use Requirejs and when to use bundled javascript?
这对网络爱好者来说可能是个愚蠢的问题。但我对此有点困惑。现在,我有一个应用程序,我正在使用几个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。
- 如何使Javascript动态html表及其上的事件
- 如何使Javascript适合浏览器端
- 使Javascript滑块每4秒自动滑动一次
- 使Javascript切换可拖动
- 如何使Javascript中的CSS正常工作
- 如何使Javascript函数“;定义的“;在使用jQuery时
- 如何使javascript在SQL while循环中回显所有数据
- 如何使Javascript函数changeImage()删除项
- 使javascript按钮隐藏或显示内容切换
- 如何使Javascript警报代码全部在一行上
- 何时在 JavaScript 中使用导出默认值和导出常量
- 样式使 JavaScript 代码无法正常运行
- 如果未输入任何内容,则使 JavaScript 按钮不执行任何操作
- 如何使javascript/d3识别日期格式
- 如何使JavaScript只在特定的DIV标记中起作用
- 当涉及到if语句时,我如何使Javascript不区分大小写
- 检测数组的所有函数何时返回:javascript
- 使javascript在firefox中的插件javascript之后执行
- 何时在javascript中使用css元素/类选择器
- 如何使javascript联系人表单正确提交