seasj-note

本文阅读大概需要 1 分钟

玉伯的一份ppt

在这份Seajs的PPT中,玉伯介绍到了Seajs的实现

1
2
3
4
5
6
7
8
9
/*a.js*/
define(function(require, exports, module){
var b = require('./b');
var c = require('./c');
//other code
});

/*main.js*/
seajs.use(./a);

  • Step1: 解析 ‘./a’
  • Step2.1: 下载a
  • Step2.2: 执行define,保存a的factory
  • Step2.3: 得到依赖b和c
  • Step2.4: 加载b和c
  • Step3: 执行a的factory,得到a的module.exports

Step1: 路径解析

在进行路径解析的时候require('jquery'),首先判断在seajs.config是否定义了该alias,

如果存在替换.(parseAlias)

这之后在根据base,将id值解析为uri.(id2uri)

在接下来进行(parseMap), 即对seajs.config中的map进行解析。

最终得到完整的路径!

Step2: 模块加载_

  • 将上一步得到的路径通过 insert script 、xhr、web workder…等方式插入

More See PPT