美文网首页
AMD规范、CMD规范、CommonJS

AMD规范、CMD规范、CommonJS

作者: 好好学习__天天向上 | 来源:发表于2022-10-18 09:53 被阅读0次

    一、AMD规范

    AMD规范,全称是Asynchronous Module Definition,即异步模块加载机制。完整描述了模块的定义,依赖关系,引用关系以及加载机制。

    AMD的核心是预加载,先对依赖的全部文件进行加载,加载完了再进行处理。

    实际上AMD 是 RequireJS 在推广过程中对模块定义的规范化的产出

    优点:

    适合在浏览器环境中异步加载模块。可以并行加载多个模块。 并可以按需加载。

    RequireJS主要解决了两个问题:

    多个js文件可能有依赖关系,被依赖的文件需要早于依赖它的文件加载到浏览器

    js加载的时候浏览器会停止页面渲染,加载文件越多,页面失去响应时间越长

    requireJS的使用:https://www.jianshu.com/p/c90fff39c225

    二、CMD规范

    CMD规范:全称是Common Module Definition,即通用模块定义。按需加载。在 CMD 规范中,一个模块就是一个文件,使用define来进行模块,define是一个全局函数。

    AMD和CMD最大的区别是对依赖模块的执行时机处理不同,而不是加载的时机或者方式不同,二者皆为异步加载模块。

    异步加载:不阻碍后面代码加载执行

    AMD依赖前置,js可以方便知道依赖模块是谁,立即加载;而CMD就近依赖,需要使用把模块变为字符串解析一遍才知道依赖了哪些模块,这也是很多人诟病CMD的一点,牺牲性能来带来开发的便利性,实际上解析模块用的时间短到可以忽略。

    SeaJs使用:https://www.jianshu.com/p/ebdf2233e3fe

    三、CommonJS规范

    这种写法适合服务端,因为在服务器读取模块都是在本地磁盘,加载速度很快。

    CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作。

    所有代码都运行在模块作用域,不会污染全局作用域。

    模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。要想让模块再次运行,必须清除缓存。

    模块加载的顺序,按照其在代码中出现的顺序。

    参考:https://www.jianshu.com/p/09ffac7a3b2c

    ————————————————

    原文链接:https://blog.csdn.net/zyz00000000/article/details/109518007

    相关文章

      网友评论

          本文标题:AMD规范、CMD规范、CommonJS

          本文链接:https://www.haomeiwen.com/subject/wprezrtx.html