我想学习Require.js,我正在考虑在现有的Django项目中实现它。但是,我已经使用资产管理器django-mediagenerator在我的项目中捆绑JavaScript文件和CSS文件。
由于我并不完全确定Require是什么(我知道它会加载脚本async,但就是这样),我想知道在已经使用django-mediagenerator的项目中实现它是否完全没用。
有什么想法吗?
答案 0 :(得分:1)
摘要:它不是一个或另一个:RequireJS和django-mediagenerator解决了在某些方面仅与重叠
的不同问题。 RequireJS主要用于模块化您的JavaScript代码,以便在设计项目时可以使用分而治之的方法,而不是将所有内容收集到一个文件中,或者花时间寻找模糊的错误,因为它发生了两次生活在不同文件中的不相关代码段决定了它们将状态记录在名为state
的全局变量中。 (欢乐时光!)
django-mediagenerator解决了收集文件以便有效提供服务的问题。这是一个不同的问题。
现在,模块化项目有助于设计,但它会影响生产中的性能。因此,RequireJS包含一个收集模块的优化器,并根据您的指示生成一个或多个优化的包。 此操作的某些与django-mediagenerator的作用重叠,但我没有在django-mediagenerator的网站上看到任何迹象表明它可以理解设计用于RequireJS的模块之间的依赖关系。另一方面,RequireJS优化器理解这些依赖关系,需要来理解它们的工作,所以你不能只是废除它。我的意思是,你不是强制使用它,但如果你不这样做,你必须想出一些能够复制RequireJS优化器中某些智能的东西。
有两个工具可以完成这项工作的领域(如CSS优化)。如果在同一个项目中同时使用两者,则必须决定如何划分责任。
答案 1 :(得分:0)
来自RequireJS文档:
RequireJS采用与传统
<script>
标记不同的脚本加载方法。虽然它也可以快速运行并且很好地优化,但主要目标是鼓励模块化代码。
尽管如此,差异不在于performance或number of requests,而在于JavaScript的组织方式。如果你打算在RequireJS中潜水,我会选择它。