seajs属于高质量js源码: 短小精悍,合理抽象,可读性强。异步
ps:js源码通常建议到src目录下阅读,合并后很差读async
seajs主流程:
1 seajs.use 获取入口模块并执行(调用Module.use)
2 Module.use 新建入口Module对象并调用Module.prototype.load
2.1 load 根据Module对象的status调用fetch、load
2.2 fetch 获取入口模块以及依赖require模块的js
resolve 解析模块id和uri依赖等
request 请求全部模块js(除异步模块)
3 在Module对象请求成功事件触发后执行各个模块
3.1 define 保存模块可执行factory
3.2 require 获取其它模块并执行fetch
分别执行define require exec
3.3 exec 执行factoryui
seajs异步流程:
require.async(从新调用Module.use)prototype
seajs设计: 设计
快捷方式对象: seajs
核心对象:Module、factory(define模块的代码块function)
静态属性:Module.STATUS (状态常量)
静态方法:Module.use、Module.get、Module.resolve、Module.save、Module.define
重要实例属性:status(跟踪模块状态)、deps (保存模块依赖)
重要实例方法:fetch、load、exec
事件入口:seajs.on seajs.off seajs.emit对象