为什么我需要加载JavaScript模块,所有这些加载器之间有什么区别?

Oli*_*eng 8 javascript amd commonjs

问题1:

为什么我需要在网页中异步加载我的JavaScript文件?我可以在服务器端看到它的基本原理,但如果我知道我需要在客户端加载的所有文件,为什么我不应该将所有源文件连接成1个文件并在页面加载时加载?第一个初始页面加载是否如此重要,以至于由于检索每个JS文件的延迟而导致未来的操作可能会变慢?

问题2:

假设问题1的答案是我需要单独加载JS文件:

AMD异步加载每个JS文件,CommonJS同步加载.服务器端加载需要CJS(如果我没有弄错的话,这就是Node.js的工作方式).AMD似乎更适合客户.因此,在客户端中使用CJS的唯一原因是与服务器共享代码.

有没有办法让AMD和CJS发挥得很好,以便客户端JS文件可以异步加载但仍然具有CJS语法?

(究竟是什么require.js呢?我不能为我的生活在他们的网站上的线条之间阅读.)

jfr*_*d00 3

您“不需要”异步加载 javascript 文件或通过某些自定义加载器加载。以下是异步加载或自定义加载可能带来好处的一些原因:

  • 当通常不需要 javascript 文件并且您可能希望根据需要而不是始终加载它时
  • 当初始页面显示不需要 javascript 文件并且您希望最大化页面首次显示的速度时
  • 当你想精确控制 javascript 文件加载的时间时
  • 当您根据某些条件决定是否加载 javascript 文件时(例如,如果从 CDN 加载失败,您可能会从备份位置加载)
  • 当您希望脚本加载与其他事情并行进行而不是一个接一个地序列化时

如果您不需要任何这些好处或编程加载提供的其他一些好处,那么您可以只使用普通<script>标签并让它们同步加载。