一、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文件。