AMD是"Asynchronous Module Definition"的缩写。意思就是"异步模块定义".
AMD定义了我们所用的模块都是是异步载入的,所以我们要将依赖模块的代码片段要放在一个回调函数中,当异步载入模块完成后(也就是此模块已可用时)触发回调函数
经常使用的AMD库有require.js、sea.js

AMD标准中定义了下面两个API
(1) require([module], callback);

(2) define([depends], callback);

require接口用来载入一系列模块,define接口用来定义并暴露一个模块

在AMD中我们js的代码都是放在require的回调中的,require函数帮我们载入依赖的模块而且处理器深层次的依赖关系(依赖的依赖等等)并在一切依赖载入完成后,将模块作为回调函数的传參,并调用回调函数.
看下面场景
我们的js代码须要B,C模块.B模块不依赖于不论什么模块,C模块依赖于D模块

require([B,C],function(B,C){
var A = {};
A.say = B.say;
A.run = C.run;
return A;
}); B.js
define([], function(){
var B = {};
B.say = function() {
console.info('say hello!');
}
return B;
}); C.js
define([D], function(D){
var C={};
c.run = function() {
console.info(D.name + ' free running!');
}
return C;
}) D.js
define([],function(){
var D={'name':'songzheng'};
return D;
});
先如果一切模块都还未载入,整个载入步骤例如以下
(1)代码依赖着B、C模块,调用require载入B、C模块
(2)B模块不依赖于不论什么模块当载入成功后,回调factoryB,安装B模块
(3)在载入C模块时发现C模块依赖着D模块于是调用require载入D模块
(4)D模块不依赖不论什么模块,载入成功后,回调factoryD载入安装D模块
(5)C依赖的D模块载入成功后,回调factoryC,安装C模块
(6)全部依赖安装完成,运行回调函数

我在自己的AMD实现的步骤中加了一些日志打印,能够更清晰的看到模块的载入过程
<script type="text/javascript">
require(['Iris','cookie'], function(Iris, Cookie){
console.info(Iris);
console.info(Cookie);
});
</script>

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29uZ3poZW5nXzc0MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">




JavaScript AMD规范简单介绍(一)的更多相关文章

  1. 前端之JavaScript:JS简单介绍

    JavaScript(JS)之简单介绍 一.JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名Scr ...

  2. JavaScript数组的简单介绍

    ㈠对象分类 ⑴内建对象 ⑵宿主对象 ⑶自定义对象   ㈡数组(Array) ⑴简单介绍 ①数组也是一个对象 ②它和我们普通对象功能类似,也是用来存储一些值的 ③不同的是普通对象是使用字符串作为属性名的 ...

  3. javascript HTML DOM 简单介绍

    JavaScript HTML DOM通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素.HTML DOM (文档对象模型)当网页被加载时,浏览器会创建页面的文档对象模型( ...

  4. 一个新人对JavaScript的内容简单介绍

    JavaScript 1.基本的数据类型:字符串  小数  整数  时间日期  布尔型等. 2.变量: JS定义变量通通都是用var开头,var里面可以放任何东西(如:小数,整数,字符串,时间日期等等 ...

  5. Javascript的AMD规范

    Javascript发展到今天,已经从一个小丑语言变成了不可替代的前端利器,已经脱离了低端的玩笑脚步,而转变为有规可依的强大语言. 本文主要讲述下如今被大力推广的AMD规范,为什么要AMD,什么场景是 ...

  6. javascript模块化编程(AMD规范的加载器)

    关于AMD规范可以参考阮一峰的这篇文章Javascript模块化编程(二):AMD规范 简单来说,AMD规范就是异步方式加载模块的一种方式,避免因为模块加载过慢而导致浏览器“假死”. 先贴一个学习地址 ...

  7. 详解AMD规范及具体实现requireJS在工程中的使用

    前面的话 由CommonJS组织提出了许多新的JavaScript架构方案和标准,希望能为前端开发提供统一的指引.AMD规范就是其中比较著名一个,全称是Asynchronous Module Defi ...

  8. Dojo初探之1:AMD规范,编写符合AMD规范(异步模块加载机制)的模块化JS(其中dojo采用1.11.2版本)

    一.AMD规范探索 1.AMD规范(即异步模块加载机制) 我们在接触js的时候,一般都是通过各种function来定义一些方法,让它们帮我们做一些事情,一个js可以包含很多个js,而这些functio ...

  9. 什么是AMD规范

    AMD规范全称是Asynchronous Module Definition,即异步模块加载机制.从它的规范描述页面看,AMD很短也很简单,但它却完整描述了模块的定义,依赖关系,引用关系以及加载机制. ...

随机推荐

  1. win10查看系统启动项,并且禁用

    打开任务管理器,有一个叫做start up的选项卡,里面的东西就是启动项. 右键选中需要disable的,然后禁用.

  2. Spark新愿景:让深度学习变得更加易于使用——见https://github.com/yahoo/TensorFlowOnSpark

    Spark新愿景:让深度学习变得更加易于使用   转自:https://www.jianshu.com/p/07e8200b7cea 前言 Spark成功的实现了当年的承诺,让数据处理变得更容易,现在 ...

  3. hdoj--1598--find the most comfortable road

    find the most comfortable road Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  4. 饭卡(hdoj--2546--背包)

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  5. 关于sql2008的数据库导入问题的收集

    在下载一个源程序的时候,常常会一起下下来一个数据库,即一个.MDF文件和一个.LDF文件,那么我们如何添加到我们的SQL Server 2008中呢?下面是一些详细的步骤: 1.将.MDF和.LDF文 ...

  6. redis动态添加内存,动态配置,无需重启

    在redis的使用过程中,有时候需要急需修改redis的配置,比如在业务运行的情况下,内存不够怎么办,这时要么赶紧删除无用的内存,要么扩展内存.如果有无用的内容可删除那么所有问题都已经解决.如果内容都 ...

  7. 【TYVJ1936】【Clover杯NOIP模拟赛IV】太空战队

    [问题描述] 在社会经济高速发展的今天,借助高科技手段,组建太空战队的愿望就快实现了. 战队属下有N个航天员.作为空军选拔上来的佼佼者,每个航天员都有与生俱来的骄傲——他们每个人都认为自己是最强的或者 ...

  8. LeetCode Weekly Contest 18B

    1. 496. Next Greater Element I 暴力的话,复杂度也就1000 * 1000 = 1e6, 在1s的时限内完全可以. 当然,有许多优化方法,利用stack维护递减序列的方法 ...

  9. 使用数组实现ArrayList的效果

    package day04.d2.shuzu; /** * 通过数组实现类似于集合的功能 * 包含功能有: * * 动态添加元素 * 在指定位置添加元素 * * 删除指定下标的元素 * 删除指定内容的 ...

  10. QlikSense系列(2)——QlikSense安装和升级

    继上篇对QlikSense进行总体介绍之后,想必大家想体验下产品,下面介绍安装的过程和注意点. 注:我的系统环境Windows Server 2008R2,QlikSense版本为3.1SR1 Qli ...