可以使用同步或异步的方式来加载 sea.js
。
加载 sea.js
最直接的方式是通过 script
标签来引入。
<script src="http://example.com/libs/seajs/1.1.0/sea.js"></script>
可以将 sea.js
与其他常见类库合并,例如 jquery.js
:
<script src="http://example.com/libs/sea-jquery.js"></script>
推荐使用 nginx concat module 进行自动合并。
<script src="http://example.com/libs/??seajs/1.1.0/sea.js,jquery/1.7.1/jquery.js"></script>
** 注意:通过服务器自动 combo 时,通常需要手动配置 base
路径:
<script src="http://example.com/libs/??seajs/1.1.0/sea.js,jquery/1.7.1/jquery.js"></script> <script> seajs.config({ 'base': 'http://example.com/libs/' }); seajs.use('underscore/1.1.6/underscore'); // => http://example.com/libs/underscore/1.1.6/underscore.js </script>
可以在页面中内嵌以下代码,来让 sea.js
自身也能通过异步的方式加载:
<script> // 其他代码 // 下面是 seajs 的异步载入代码: ;(function(m, o, d, u, l, a, r) { if(m[d]) return; function f(n, t) { return function() { r.push(n, arguments); return t; } } m[d] = a = { args: (r = []), config: f(0, a), use: f(1, a) }; m.define = f(2); u = o.createElement('script'); u.id = d + 'node'; u.src = 'http://example.com/libs/seajs/1.0.2/sea.js'; l = o.getElementsByTagName('head')[0]; l.insertBefore(u, l.firstChild); })(window, document, 'seajs'); // 下面立刻就可以调用 seajs 的方法了: seajs.config({ 'base': 'http://example.com/libs/' }); seajs.use('./init', function(init) { // do some cool things. }); </script>
通过 use 方法,可以在页面中加载任意模块:
<script src="http://example.comlibs/seajs/1.1.0/sea.js"></script> <script> seajs.use('path/to/init', function(init) { init.somethingA(/* You can pass config as parameters here. */); init.somethingB(/* You can pass config as parameters here. */); }); </script>
callback
参数是可选的:
<script src="http://example.com/libs/seajs/1.1.0/sea.js"></script> <script> seajs.use('path/to/init'); </script>
上面的代码还可以通过 data-main
来简化:
<script src="http://example.com/libs/seajs/1.1.0/sea.js" data-main="path/to/init" ></script>
更多用法,请参考 bootstrap/index.html