美文网首页
模块化编程(AMD规范)

模块化编程(AMD规范)

作者: 蚊子简叔 | 来源:发表于2016-12-29 09:54 被阅读0次
一、为什么模块很重要?

因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。

二、同样的方式编写模块

大家必须以同样的方式编写模块,否则你有你的写法,我有我的写法,岂不是乱了套!考虑到Javascript模块现在还没有官方规范,这一点就更重要了。

三、目前,通行的Javascript模块规范共有两种:CommonJSAMD。我主要介绍AMD,但是要先从CommonJS讲起。
四、commonJS——require()方法

在CommonJS中,有一个全局性方法require(),用于加载模块。假定有一个数学模块math.js,就可以像下面这样加载。

var math = require("math");
math.add(2,3);//5
五、问题来了——第二行math.add(2, 3),在第一行require('math')之后运行,因此必须等math.js加载完成。也就是说,如果加载时间很长,整个应用就会停在那里等。

这对服务器端不是一个问题,因为所有的模块都存放在本地硬盘,可以同步加载完成,等待时间就是硬盘的读取时间。但是,对于浏览器,这却是一个大问题,因为模块都放在服务器端,等待时间取决于网速的快慢,可能要等很长时间,浏览器处于"假死"状态。

六、AMD

因此,浏览器端的模块,不能采用"同步加载"(synchronous),只能采用"异步加载"(asynchronous)。这就是AMD规范诞生的背景。

AMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。

AMD也采用require()语句加载模块,但是不同于CommonJS,它要求两个参数:

require([module],callback);

第一个参数[module],是一个数组,里面的成员就是要加载的模块;第二个参数callback,则是加载成功之后的回调函数。

相关文章

  • JS模块开发学习资源

    Javascript模块化编程(一):模块的写法Javascript模块化编程(二):AMD规范Javascrip...

  • webpack

    模块化: 命名冲突 文件依赖 模块化编程: 函数写法 对象写法 立即执行函数写法 CommonJS规范AMD规范 ...

  • js模块化

    js的模块化大致分为4种规范 amd cmd commonjs 和es6模块化 1.amd规范 amd规范又叫异步...

  • JS 中的require 和 import 区别

    原文地址这两个都是为了JS模块化编程使用. 遵循规范 require 是AMD规范引入方式 import 是ES...

  • import 和 require 的 区别以及暴露模块and n

    import 和 require都是模块化编程的诞生物 require 是 AMD规范引入方式import是es6...

  • import和require的区别

    首先这两个都是为了JS模块化编程使用. 遵循规范 require 是 AMD规范引入方式 import是es6的一...

  • 模块化编程(AMD规范)

    一、为什么模块很重要? 因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。 二、同样的...

  • 模块化相关知识

    CMJ:node环境中的模块化规范。AMD:在浏览器端运行的JS模块化规范。UMD:CMJ和AMD的集成,会依次判...

  • 模块化开发

    一提到模块化开发,就会提到 CommonJS 规范和AMD规范,这些都是模块化的依据规范, RequireJS 就...

  • Webpack原理-从前端模块化开始

    当前主流 JS 模块化方案 CommonJS 规范,nodejs 实现的规范 AMD 规范,requirejs 实...

网友评论

      本文标题:模块化编程(AMD规范)

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