美文网首页
简述AMD 和 CMD

简述AMD 和 CMD

作者: 杨同学a | 来源:发表于2020-07-03 22:44 被阅读0次

AMD

AMD推崇依赖前置,在定义模块的时候就要声明其依赖的模块
同样都是异步加载模块,AMD在加载模块完成后就会执行改模块,所有模块都加载执行完后会进入require的回调函数,执行主逻辑,这样的效果就是依赖模块的执行顺序和书写顺序不一定一致,看网络速度,哪个先下载下来,哪个先执行,但是主逻辑一定在所有依赖加载完成后才执行.

requireJS主要解决两个问题

1、多个js文件可能有依赖关系,被依赖的文件需要早于依赖它的文件加载到浏览器
2、js加载的时候浏览器会停止页面渲染,加载文件越多,页面失去响应时间越长

require()函数在加载依赖的函数的时候是异步加载的,这样浏览器不会失去响应,它指定的回调函数,只有前面的模块都加载成功后,才会运行,解决了依赖性的问题。

CMD

CMD推崇就近依赖,只有在用到某个模块的时候再去require
CMD规范是国内发展出来的,就像AMD有个requireJS,CMD有个浏览器的实现SeaJS,SeaJS要解决的问题和requireJS一样,只不过在模块定义方式和模块加载(可以说运行、解析)时机上有所不同

1.Sea.js 推崇一个模块一个文件,遵循统一的写法

2.CMD加载完某个模块后没有立即执行而是等到遇到require语句的时再执行。

两者异同

CMD加载完某个依赖模块后并不执行,只是下载而已,在所有依赖模块加载完成后进入主逻辑,遇到require语句的时候才执行对应的模块,这样模块的执行顺序和书写顺序是完全一致的

AMD在加载模块完成后就会执行改模块,所有模块都加载执行完后会进入require的回调函数,执行主逻辑,这样的效果就是依赖模块的执行顺序和书写顺序不一定一致,看网络速度,哪个先下载下来,哪个先执行,但是主逻辑一定在所有依赖加载完成后才执行

这也是很多人说AMD用户体验好,因为没有延迟,依赖模块提前执行了,CMD性能好,因为只有用户需要的时候才执行的原因

参考文章 高速路口

相关文章

  • 简述AMD 和 CMD

    AMD AMD推崇依赖前置,在定义模块的时候就要声明其依赖的模块同样都是异步加载模块,AMD在加载模块完成后就会执...

  • js的模块方案:CommonJS、AMD和CMD

    什么是CommonJS、AMD和CMD CommonJS、AMD和CMD都是js的模块加载方案,JS在最初设计的时...

  • Amd和Cmd

    AMD 规范在这里:https://github.com/amdjs/amdjs-api/wiki/AMD CMD...

  • AMD和CMD

    1.不同的模块化规范 对于依赖的模块AMD是提前执行,CMD是延迟执行CMD推崇依赖就近,AMD推崇依赖前置 2....

  • AMD和CMD

    以代码爱好者角度来看AMD与CMD 随着浏览器功能越来越完善,前端已经不仅仅是切图做网站,前端在某些方面已经媲美桌...

  • AMD和CMD

    题目1: 为什么要使用模块化? 题目2:CMD、AMD、CommonJS 规范分别指什么?有哪些应用 AMD和CM...

  • AMD 和 CMD

    一、前言 这是我们经常写在 HTML 中的语句,引用了很多 js 文件,但是看不清他们彼此之间的依赖关系: 删除 ...

  • AMD CMD

    AMD CMD AMD,CMD是浏览器端模块加载器的两种规范。AMD的代表是requireJS和SeaJS。今天主...

  • [读]高大上的AMD和CMD的区别

    高大上的AMD和CMD的区别

  • 前端模块化(CommonJs,AMD和CMD)

    前端模块规范有三种:CommonJs,AMD和CMD。CommonJs用在服务器端,AMD和CMD用在浏览器环境A...

网友评论

      本文标题:简述AMD 和 CMD

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