js模块加载器seajs源码阅读

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对象

相关文章
相关标签/搜索