layout | title | |
---|---|---|
default |
|
异步模块定义,避免了同步加载方式导致的页面假死现象。
每个模块需要按照一定的格式书写,define和require。
define是模块开发者关注的写法,require是模块使用者关注的写法。
define('xxx',["aaa","bbb"],function(aaa,bbb){
});
require(['aaa','bbb'],function(aaa,bbb){
});
todo:再看看
require的作用是在依赖加载完毕之后,再执行用户的回调,于是会有个加载的过程:
- 取得依赖的第一个ID,然后拿到他的路径
- 检查是否加载过,或者正在被加载,所以需要列表保存加载的状态
- 创建script节点,绑定一应的onerror,onload,onreadychange来判断成功与否,然后插入DOM,开始加载
- 将模块的加载状态保存到对象中