我想学习 Require.js,并且正在考虑在现有的 Django 项目中实现它。但是,我已经在使用 Assets 管理器 django-mediagenerator用于在我的项目中捆绑 JavaScript 文件和 CSS 文件。
由于我不完全确定 Require 的作用(我知道它会异步加载脚本,但仅此而已),我想知道在已经使用 django-mediagenerator 的项目中实现它是否完全无用。
有什么想法吗?
最佳答案
总结:这不是一个或另一个:RequireJS 和 django-mediagenerator 解决仅在某些方面重叠的不同问题。
RequireJS 的设计主要是为了模块化你的 JavaScript 代码,这样当你设计你的项目时,你可以使用分而治之的方法,而不是将所有内容收集到一个文件中,或者花时间寻找晦涩的错误,因为碰巧两个位于不同文件中的不相关代码片段决定将其状态记录在名为 state
的全局变量中。 (几个小时的乐趣!)
django-mediagenerator 解决了将文件收集在一起以有效地提供服务的问题。这是一个不同的问题。
现在,模块化项目有助于设计,但会损害生产性能。因此,RequireJS 包含一个优化器,它可以收集您的模块,并根据您的指示生成一个或多个优化包。此操作的某些部分与 django-mediagenerator 的操作重叠,但我在 django-mediagenerator 的网站上没有看到任何迹象表明它可以理解设计用于 RequireJS 的模块之间的依赖关系。另一方面,RequireJS 优化器了解这些依赖关系,并且需要了解它们才能完成其工作,因此您不能直接消除它。我的意思是,您并不是被迫使用它,但如果您不这样做,您就必须想出一些东西来复制 RequireJS 优化器中的一些智能。
在某些领域(例如 CSS 优化)这两种工具都可以完成工作。如果您在同一个项目中使用两者,则必须决定如何划分职责。
关于python - 使用 django-mediagenerator 时不需要 Require.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20636505/