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