Skip to content

Latest commit

 

History

History
31 lines (23 loc) · 930 Bytes

模块加载系统.md

File metadata and controls

31 lines (23 loc) · 930 Bytes
layout title
default
{"site.name" => nil}

模块加载系统

AMD规范

异步模块定义,避免了同步加载方式导致的页面假死现象。

每个模块需要按照一定的格式书写,define和require。

define是模块开发者关注的写法,require是模块使用者关注的写法。

    define('xxx',["aaa","bbb"],function(aaa,bbb){
    });
    require(['aaa','bbb'],function(aaa,bbb){
    });

路径探索

todo:再看看

require方法

require的作用是在依赖加载完毕之后,再执行用户的回调,于是会有个加载的过程:

  • 取得依赖的第一个ID,然后拿到他的路径
  • 检查是否加载过,或者正在被加载,所以需要列表保存加载的状态
  • 创建script节点,绑定一应的onerror,onload,onreadychange来判断成功与否,然后插入DOM,开始加载
  • 将模块的加载状态保存到对象中