一、requireJs是什麼?html
RequireJS是一個很是小巧的JavaScript模塊載入框架,是AMD規範(Asynchronous Module Definition,即異步模塊加載機制)最好的實現者之一,jquery
二、爲何使用requirejs?bootstrap
(1)實現js文件的異步加載,避免網頁失去響應;數組
(2)管理模塊之間的依賴性,便於代碼的編寫和維護。restful
三、怎麼使用requirejs?app
1)爲了防止加載文件形成網頁失去響應,所以把加載代碼放在頁面的底部,而且async代表異步加載,IE不支持這個屬性,只支持defer.data-main的做用是指定網頁程序的主模塊。框架
<script async="async" defer="defer" src="../hapui/plugins/requireJs/require.js" data-main="../hapui/js/main.js"></script>dom
2)main.js的內容異步
'use strict' //加載模塊依賴 ,執行函數加載完這些js以後 function(angular) { |
關於_page的說明
<body ng-controller="customerController" id="moduleId" pagename="../../cust/customer"> |
關於interfaces的說明
console.info('加載','interfacesConfig.js'); var dev_menu_domain="http://"+host+"/" ; |
四、還有哪些方面能夠深化?
1)用RequireJS定義模塊?---(僅供參考,目前並未在項目中應用。http://www.ruanyifeng.com/blog/2012/11/require_js.html)
require.js加載的模塊,採用AMD規範。也就是說,模塊必須按照AMD的規定來寫。
具體來講,就是模塊必須採用特定的define()函數來定義。若是一個模塊不依賴其餘模塊,那麼能夠直接定義在define()函數之中。
假定如今有一個math.js文件,它定義了一個math模塊。那麼,math.js就要這樣寫:
// math.js
define(function (){
var add = function (x,y){
return x+y;
};
return {
add: add
};});
加載方法以下:
// main.js
require(['math'], function (math){
alert(math.add(1,1));
});
若是這個模塊還依賴其餘模塊,那麼define()函數的第一個參數,必須是一個數組,指明該模塊的依賴性。
define(['myLib'], function(myLib){
function foo(){
myLib.doSomething();
}
return {
foo : foo
};
});
當require()函數加載上面這個模塊的時候,就會先加載myLib.js文件。