有了 define 等模块定义规范的实现,我们可以开发出很多模块。但光有一堆模块不管用,我们还得让它们能跑起来。在 SeaJS 里,要启动模块系统很简单:
<script src="https://www.jb51.net/path/to/sea.js"></script> <script> seajs.use('./main'); </script>
seajs.use 用来在页面中加载模块。通过 use 方法,可以在页面中加载任意模块。
语法:seajs.use seajs.use(id, callback?)
// 加载模块 main,并在加载完成时,执行指定回调 seajs.use('./main', function(main) { main.init(); });
use 方法还可以一次加载多个模块:
// 并发加载模块 a 和模块 b,并在都加载完成时,执行指定回调 seajs.use(['./a', './b'], function(a, b) { a.init(); b.init(); });
callback 参数可选。当只加载一个模块,且不需要 callback 时,可以用 data-main 属性来简化:
<script src="https://www.jb51.net/path/to/sea.js" data-main="./main"></script>
上面的代码等价于:
<script src="https://www.jb51.net/path/to/sea.js"></script> <script> seajs.use('./main'); </script>
SeaJS 还提供 data-config 来加载配置文件:
<script src="https://www.jb51.net/path/to/sea.js" data-config="path/to/config"></script>
data-config 等价:
seajs.config({ preload: ['path/to/config'] });
路径解析规则与 seajs.use 一致。
我这里用的是:
<script src="https://www.jb51.net/js/lib/sea.js" data-config="/js/config.js"></script> <script> seajs.use('/js/main', function(main) { main.banner_focus('#focus'); });
注:main为模块名。main.method为模块定义的函数,可以传递参数过去。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript扩展技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript数学运算用法总结》、《JavaScript中json操作技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数据结构与算法技巧总结》