這篇主要講最後的seajs原始碼執行順序。當然,前面那些零零碎碎的就直接忽略了,就從module那塊開始
seajs總的函式呼叫順序圖如下:
seajs.use呼叫後會呼叫module.preload,如果有預載入模組的話,就需要先呼叫module.use(preloadmods,function(),...),來完成模組的預載入,在其完成後再正式呼叫module.use(ids,...)
mod.load中的resolve函式主要是將mod所依賴的一系列檔案路徑都計算出來,然後形成陣列返回。在load通過迴圈,逐個的用module.get得到module例項,然後通過fetch,呼叫seajs.request得到該檔案並執行,由於得到的js檔案的話一般有define包裹,define的作用是將factory函式解析,判斷其依賴的專案,然後新增的m例項的依賴下,在後面的m.load執行時,就會將這些依賴專案抓取過來,若依賴專案中還有依賴,就會再次進入解析-正則匹配-新增依賴-load抓取。
在一起依賴都完成時,就會執行m.onload函式,這個函式在最後會對依賴這個m的module進行逐一檢查,分別減去他們的_remain,並判斷remain是否等於0,若等於0,就對這個mod執行mod.onload函式。
uC OS II原始碼分析(四)
核心結構 1,臨界區,os enter critical 和os exit critical 為了處理臨界區 必須關中斷,等處理完畢後,再開中斷。關中斷可以避免其他任務或中斷進入臨界區 uc os ii 定義了這兩個巨集來實現,但注意一條 呼叫 uc os ii 功能函式時,中斷應該總是開著的。1 ...
gSOAP 原始碼分析 四
gsoap 原始碼分析 四 2012 6 2 邵盛松 前言本文主要說明gsoap中對client的認證分析 gsoap中包含了http基本認證,ntlm認證等,還可以自定義soap heard實現認證等 一 http基本認證 client在向server傳送請求時提供以使用者名稱和口令形式的憑證 g...
uC OS II原始碼分析(四)
核心結構 1,臨界區,os enter critical 和os exit critical 為了處理臨界區 必須關中斷,等處理完畢後,再開中斷。關中斷可以避免其他任務或中斷進入臨界區 uc os ii 定義了這兩個巨集來實現,但注意一條 呼叫 uc os ii 功能函式時,中斷應該總是開著的。1 ...