js模块加载器seajs源码阅读

seajs属于高质量js源码: 短小精悍,合理抽象,可读性强。

    ps:js源码一般建议到src目录下阅读,合并后不好读

 

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 获取其它模块并执行

           分别执行define require exec
        3.3 exec 执行factory

seajs异步流程:
    require.async(重新调用Module.use)

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

你可能感兴趣的:(js模块加载器seajs源码阅读)