一、学习资料
http://www.cnblogs.com/leoo2sk/archive/2011/06/27/write-javascript-with-seajs.html#navi-2
https://github.com/seajs/seajs/ 中下载seajs-master.zip
二、方法介绍
1、define:SeaJS中使用“define”函数定义一个模块。
define(
function
(require, exports, module) {
//code of the module...
});
require —— 模块加载函数,用于记载依赖模块。
exports —— 接口点,将数据或方法定义在其上则将其暴露给外部调用。
module —— 模块的元数据。
2、require:用相对调用载入函数所在js文件的相对地址寻找模块。
require(
"./c"
); -- 载入“http://example/js/c.js”。
下面三种情况下不会添加:
载入css时,如
require(
"./module1-style.css"
);
路径中含有”?”时,如
路径以”#”结尾时,如
seajs.use主要用于载入入口模块。入口模块相当于C程序的main函数,同时也是整个模块依赖树的根。上面在TinyApp小例子中,init就是入口模块。seajs.use用法如下:
//单一模式
seajs.use(
'./a'
);
//回调模式
seajs.use(
'./a'
,
function
(a) {
a.run();
});
//多模块模式
seajs.use([
'./a'
,
'./b'
],
function
(a, b) {
a.run();
b.run();
});
4、require.async:动态加载模块
5、seajs.config:设置全局配置,接收一个表示全局配置的配置对象。
seajs.config({
base:
'path/to/jslib/'
,
alias: {
'app'
:
'path/to/app/'
},
charset:
'utf-8'
,
timeout: 20000,
debug:
false
});
其中base表示基址寻址时的基址路径。例如base设置为”http://example.com/js/3-party/”,则
会载入”http://example.com/js/3-party/jquery.js”。
alias可以对较长的常用路径设置缩写。
charset表示下载js时script标签的charset属性。
timeout表示下载文件的最大时长,以毫秒为单位。
debug表示是否工作在调试模式下。