自研模組載入器 二 載入器結構與設計導論

2022-08-01 04:24:10 字數 811 閱讀 7616

資料初始化: 載入器中設計來乙個名為module的建構函式,每個模組都是此建構函式例項物件。建構函式中給例項物件擴充套件了"未來"所需用到的屬性和方法。 

模組儲存: 載入器中設計來乙個名為cache的快取物件,每個檔案(模組)都會儲存在cache物件中。

具體儲存方式: , 注意: 當前模組的絕對路徑是通過資源部分,資源定位方法實現的。

每個模組建立都先初始化資料,儲存在快取物件中。

依賴管理:已知當前模組在cache中的形態,

換算: };  deps儲存當前模組的依賴列表,依賴列表通過動態載入script檔案正則解析獲取。

重點:解析依賴->獲取依賴模組絕對路徑->動態載入->提取依賴->解析依賴. 遞迴的方式載入所有的模組,直至模組全部載入完畢。

資源定位:載入器中設計了乙個 resolve()的方法把模組名解析成絕對路徑格式。

模組名的獲取: startup.use(['a.js', 'b.js']);  startup.use()載入器的啟動方法,啟動時會去呼叫傳入陣列列表中的模組。

動態載入script檔案:通重載入器resolve()方法把模組名解析成絕對路徑格式。動態建立script document.createelement('script');  把src指向當前模組的絕對路徑位址。載入檔案的同時,模組載入器解析當前模組所依賴的模組以陣列的形式儲存。

資源定位依賴管理是載入器設計的兩大核心。

AMDLoader資料模組載入器

use strict 非同步資料模組載入器 功能1 載入器存在 主任務 副任務 子任務 newrequire 表示載入主任務,主任務併發執行,newrequire param1 執行主任務的時候,暫停副任務,主任務結束後,再執行副任務。onrequirefree 表示載入副任務,任務放佇列,主任務結...

瀏覽器端模組載入器AMD和CMD

1.amd 非同步模組定義 amd 瀏覽器端模組化開發的規範。使用amd規範快發需要用到對應的庫函式requirejs,也即amd是requirejs在推廣過程中對模組定義的規範化的產出。requirejs主要解決兩個問題 requirejs作用 requirejs使用 引用載入自己寫的js檔案 j...

4 類載入器與類的載入過程概述

負責從檔案系統或者網路中將class檔案載入到記憶體中,生成乙個大的class的物件例項。只負責載入,是否可以執行由執行引擎決定。載入的類資訊存放在一塊稱為方法區的空間中。除了類資訊之外,方法區中還會存放執行時常量池資訊。現在有乙個類car,編譯之後儲存在本地硬碟的class檔案中。然後通過類載入器...