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

相關文章
相關標籤/搜索