天天看點

RequireJS執行個體分析

  随着JS越來越龐大,已經不僅僅是以前複制粘貼做特效的時代了,JS越來越偏向于業務邏輯與應用。恰逢Node的流行,JS在web開發中占有越來越重要的地位。由于JS代碼龐大,檔案數目多,傳統的使用<script src=""></script>會帶來很多性能的問題,是以requirejs可以為我們提供兩種解決思路:   1 子產品化組織JS   2 異步加載JS檔案   有了這兩種解決辦法,能有效的幫助我們解決前端代碼庫的組織難題。   本文下面就模拟一個小例子,由于并沒有應用實踐,是以命名很戳,還請見諒。

/public

  |------require.js、config.js、index.html

  |-------lib/

    |-------a.js、b.js

  |-------orthers/

    |-------c.js

require.js:

  其中requirejs的核心代碼就是require.js檔案,可以從官方網站上下載下傳:

config.js:

  用于配置requirejs的相關内容,可以設定檔案目錄,加載子產品命名比對,以及一些依賴關系等等。

index.html:

  我們的測試頁面或者網址首頁。

/lib/a.js和/lib/b.js 以及 /others/c.js

  是測試的子產品js檔案。

index.html

<a></a>

  其中,data-main指定主要的配置檔案;src為requirejs的檔案。

config.js

  baseUrl指定所有檔案的主要目錄,paths配置子產品名字以及其比對的加載路徑。

  當有需要使用某些子產品時,就可以通過require([xxx],function(xxx){xxx});的方式使用。

a.js

b.js

c.js

  子產品化檔案,一般是一個功能是一個檔案。檔案的名字,就是上面requireconfig中配置的子產品名字。require加載檔案時,會自動加上.js字尾。

  當某些子產品依賴其他子產品時,可以通過define([xxx],function(xxx){yyy});的方式添加依賴關系,require會在異步加載後,自動調整次序。

  當通路index.html時,會先加載require.js然後把需要加載的檔案都通過appendChild的方式,添加到index.html的底部。

  是以會先彈出index對話框,當執行config.js的後半部分代碼時,會依次使用a.js b.js c.js,是以也會依次彈出三個對話框。

繼續閱讀