require.js

http://requirejs.org/jquery

之前頁面js文件不少,因此不少js依次寫在頁面中加載數組

(1)實現js文件的異步加載,避免網頁失去響應;異步

(2)管理模塊之間的依賴性,便於代碼的編寫和維護函數

require.js的加載:全部的js都放在js子目錄下面requirejs

<script src="js/require.js" data-main="js/main"></script>ui

data-main屬性的做用是指定網頁程序的主模塊,require一個js文件的時候,默認加載路徑就是data-main指定的目錄,即js/main.js文件所在的目錄,也能夠經過配置文件修改spa

主模塊的寫法:code

require(['jquery', 'underscore', 'backbone'], function($, _, Backbone){

    //some code here

});

require()函數接受兩個參數,第一個是數組表示所依賴的模塊,第二個參數是一個回調函數blog

模塊的加載:    ip

 require.config({

    baseUrl: "js/lib", //直接改變及目錄,若是在js/lib目錄下面

    paths: {

      "jquery": "jquery.min",//若是某個模塊在另外一臺主機上也能夠直接指定網址
      "underscore": "underscore.min",
      "backbone": "backbone.min"

    }

  });

AMD模塊的寫法:

require.js加載的模塊採用AMD規範,就是模塊必須採用define()函數來定義依賴myLib模塊

define(['myLib'], function(myLib){

    function foo(){

      myLib.doSomething();

    }

    return {

      foo : foo

    };

  });

加載非規範的模塊:

再用require()加載以前,要先用require.config()方法定義它們的一些特徵

exports值代表這個模塊外部調用時的名稱,deps數組代表該模塊的依賴性

require.config({

      shim: {

      'underscore':{exports:'_'},

      'backbone':{deps: ['underscore', 'jquery']}

      'exports': 'Backbone'

      }

  });
相關文章
相關標籤/搜索