存在AMD(Asynchronous Module Definition异步模块定义)规范和CMD(Common Module Definition通用模块定义)规范。
对于依赖的模块,AMD是提前执行,CMD是延迟执行;并非绝对,CMD推从as lazy as possible;
AMD推从依赖前置,CMD推从依赖就近;
AMD的API默认一个当多个用,CMD的API职责单一。

一个简单的开始,使用Sea.js模块化框架,该框架遵循CMD规范,简单的使用如下:

 define(function(require, exports, module) {
exports.name="xf_z1988";
exports.getnm=function(){
return exports.name;
};
});

定义一个CMD模块define_test_exports

 define(function(require, exports, module) {
module.exports={
name:"xf_z1988 module.exports test"
};
});

定义个CMD模块define_test_module_exports

 <!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style rel="stylesheet" type="text/css">
</style>
<script src="http://seajs.github.io/examples/sea-modules/seajs/seajs/2.1.1/sea.js"></script>
<script type="text/javascript">
if(typeof define === "function" && define.cmd){
show();
}
function show(){
seajs.config({
// 定义基本路径.
base:"/",
// 别名.
alias:{
"jquery":"http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js",
"define_test_exports":"http://files.cnblogs.com/xf_z1988/js_cmd_define_test_exports.js",
"define_test_module_exports":"http://files.cnblogs.com/xf_z1988/js_cmd_define_test_module_exports.js"
},
// 提前加载.
preload:["jquery"]
});
// 在页面中加载模块.
seajs.use(["jquery","define_test_exports"],function(_$,x){
$(document).ready(function(){
document.body.innerHTML+=x.name+"_1<br/>";
});
});
// 定义模块
define(function(require,request,module){
// 同步加载一个模块.
var xd=define("define_test_exports");
// 异步加载一个模块,在加载完成时,执行回调
require.async("define_test_module_exports", function(x) {
$(document).ready(function(){
document.body.innerHTML+=x.name+"_2<br/>";
});
});
});
}
</script>
</head>
<body></body>
</html>

一个使用Sea.js来模块化的例子

未完成

JavaScript 模块化加载的更多相关文章

  1. 该如何理解AMD ,CMD,CommonJS规范--javascript模块化加载学习总结

    是一篇关于javascript模块化AMD,CMD,CommonJS的学习总结,作为记录也给同样对三种方式有疑问的童鞋们,有不对或者偏差之处,望各位大神指出,不胜感激. 本篇默认读者大概知道requi ...

  2. 实现一个JavaScript模块化加载器

    对任何程序,都存在一个规模的问题,起初我们使用函数来组织不同的模块,但是随着应用规模的不断变大,简单的重构函数并不能顺利的解决问题.尤其对JavaScript程序而言,模块化有助于解决我们在前端开发中 ...

  3. 利用require.js实现javascript模块化加载

    这种引入很看到很想死吧! <script src="1.js"></script> <script src="2.js">& ...

  4. 再唠叨JS模块化加载之CommonJS、AMD、CMD、ES6

    Javascript模块化编程,已经成为一个迫切的需求.理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块. Javascript社区做了很多努力,在现有的运行环境中,实现” ...

  5. RequireJS与SeaJS模块化加载示例

    web应用越变的庞大,模块化越显得重要,尤其Nodejs的流行,Javascript不限用于浏览器,还用于后台或其他场景时,没有Class,没有 Package的Javascript语言变得难以管理, ...

  6. Javascript 异步加载详解(转)

    本文总结一下浏览器在 javascript 的加载方式. 关键词:异步加载(async loading),延迟加载(lazy loading),延迟执行(lazy execution),async 属 ...

  7. RequireJS 模块化加载框架使用

    RequireJS 是一个遵循 AMD 规范的模块化加载框架 与上文seajs一样,这里简单介绍其相关用法 同样的,首先是下载好 require.js --> http://requirejs. ...

  8. SeaJS 模块化加载框架使用

    SeaJS 是一个遵循 CMD 规范的模块化加载框架 CommonJS,CMD,AMD等规范后文会提到,这里主要先了解如何在代码中使用. 如果你有使用过nodejs ,那么理解起来就容易多了. 我们通 ...

  9. Javascript 异步加载详解

    Javascript 异步加载详解 本文总结一下浏览器在 javascript 的加载方式. 关键词:异步加载(async loading),延迟加载(lazy loading),延迟执行(lazy ...

随机推荐

  1. asp.net <%%> <%#%><%=%><%@%><%$%>用法与区别

    1.<% %>用来绑定后台代码 如: < % for(int i=0;i<100;i++) { Reaponse.Write(i.ToString()); } %> 2. ...

  2. SQL For Xml

    最近遇到点棘手的问题,大致如下: 1.数据局格式: 企业名称 排口名称 监测时间  监测因子 a b c    pH值 a b c   氨氮 a b c    化学需氧量(COD) 企业名称.排口名称 ...

  3. 关于wordpress忘记密码 找回密码的方式

    1.通过直接修改数据库中密码的加密字符(如果wordpress的版本不同,那么此方法是不好实现的) 2.使用找回密码的方式:通过邮箱找回密码 前端登录密码错误后 会显示   错误); 方法二 打开WP ...

  4. Hadoop_Block的几种状态_DataNode

    在Hadoop 2.0 中HDFS 引入了 append 和 hflush 功能之后, 需要为 数据块增加新的状态 来尽最大可能的保证数据的一致性. 参阅文档: http://files.cnblog ...

  5. ASP.NET页面生命周期总结(完结篇)

    补充: W3svc服务  负责把‘工作进程’启动起来 W3svc 连接工作进程.内核模块.IIS 主服务的一个核心的桥梁 W3svc还有一个作用就是维护应用程序池,可以设置多长时间回收,多长时间重启. ...

  6. JavaEE web.xml 中ContextLoaderListener的解析

    ContextLoaderListener监听器的作用就是启动Web容器时,自动装配ApplicationContext的配置信息.因为它实现了ServletContextListener这个接口,在 ...

  7. 比较ArrayList和LinkedList

    比较一:添加内容 涉及方法:add public void add_test(){ List<Person> addlist = new ArrayList<Person>() ...

  8. java_反射_及其简单应用(2016-11-16)

    话不多说直接上代码 接口: package bean; /** * user接口 */ public interface User { public String getName(); public ...

  9. deep learning 学习资料

    http://deeplearning.net/tutorial/lenet.html

  10. C++自定义异常处理

    自定义异常类 class MyException { public: MyException() { } MyException(char* str) { msg = str; } MyExcepti ...