amd規範&require.js

AMD是一種爲瀏覽器環境設計的一種異步模塊加載規範,node

AMD規範全稱是Asynchronous Module Definition,即異步模塊加載機制。從它的規範描述頁面看,AMD很短也很簡單,但它卻完整描述了模塊的定義,依賴關係,引用關係以及加載機制。從它被requireJS,NodeJs,Dojo,JQuery使用也能夠看出它具備很大的價值,沒錯,JQuery近期也採用了AMD規範。  做爲一個規範,只需定義其語法API,而不關心其實現。數組

AMD規範簡單到只有一個API,即define函數:
  define([module-name?], [array-of-dependencies?], [module-factory-or-object]);
  其中:
  module-name: 模塊標識,能夠省略。
  array-of-dependencies: 所依賴的模塊,能夠省略。
  module-factory-or-object: 模塊的實現,或者一個JavaScript對象。瀏覽器

require.js

遵循AMD規範,是一種小巧的js模塊載入框架,能夠運行在瀏覽器以及node環境下,實現模塊化加載。bash

優勢:

一、防止js加載阻塞頁面渲染框架

二、使用程序調用的方式加載js,實現異步加載,按需加載異步

基本API

定義三個變量:模塊化

一、define:定義一個模塊函數

a.jsui

define(function(){
    function fun1(){
      alert("it works");
    }

    fun1();
})複製代碼

二、require===require.js,通常使用require更簡短:加載依賴模塊,並執行加載完後的回調函數spa

經過define函數定義了一個模塊,而後再頁面中使用:

require(["js/a"]);複製代碼

來加載該模塊(

注意require中的依賴是一個數組,即便只有一個依賴,你也必須使用數組來定義

),require API的第二個參數是callback,一個function,是用來處理加載完畢後的邏輯,如:

require(["js/a"],function(){
    alert("load finished");
})複製代碼
相關文章
相關標籤/搜索