SeaJS之use函数

有了 define 等模块定义规范的实现,我们可以开发出很多模块。但光有一堆模块不管用,我们还得让它们能跑起来。在 SeaJS 里,要启动模块系统很简单:

<script src=”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=”path/to/sea.js” data-main=”./main”></script>

上面的代码等价于:

<script src=”path/to/sea.js”></script>
<script>
seajs.use(‘./main’);
</script>

SeaJS 还提供 data-config 来加载配置文件:

<script src=”path/to/sea.js” data-config=”path/to/config”></script>
data-config 等价:
seajs.config({
preload: [‘path/to/config‘]
});

路径解析规则与 seajs.use 一致。

我这里用的是:
<script src=”/js/lib/sea.js” data-config=”/js/config.js”></script>
<script>
seajs.use(‘/js/main’, function(main) {
main.banner_focus(‘#focus’);
});

注:main为模块名。main.method为模块定义的函数,可以传递参数过去。

时间: 2024-10-17 19:06:44

SeaJS之use函数的相关文章

SeaJS之define函数

seajs.config 用来对 SeaJS 进行配置. CMD 规范中,一个模块就是一个文件.代码的书写格式如下:define(factory);define 接受 factory 参数,factory 可以是一个函数,也可以是一个对象或字符串.factory 为对象.字符串时,表示模块的接口就是该对象.字符串. factory 为函数时,表示是模块的构造方法.用来定义模块.SeaJS 推崇一个模块一个文件,遵循统一的写法: define(function(require, exports,

SeaJs与RequireJs执行差异

seajs与requirejs在模块的加载方面是没有差异的,无论是requirejs在定义模块时定义的依赖模块,还是seajs在factory函数中require的依赖模块,在会在加载当前模块时被载入,异步,并且顺序不可控.差异在于factory函数执行的时机. 为了增强对比,我们在定义依赖模块的时候,故意让它们的factory函数要执行相当长的时间,比如1秒: // dep_A.js定义如下,dep_B.dep_C定义同理 define(function(require, exports, m

seajs教程之seajs学习笔记 seajs.use用法

seajs.use 用来在页面中加载模块.通过 use 方法,可以在页面中加载任意模块. 实例地址:http://www.android100.org/html/201405/23/12807.html 实例中有BUG,修复后的代码见附件  附件下载地址 --------------------------------------------------- 关于seajs.use的用法如下: SeaJS之use函数 原文地址:http://www.cnblogs.com/ada-zheng/p/

也许是被误解的浏览器资源加载优化

几乎每一个前端程序员都知道应该把script标签放在页面底部.关于这个经典的论述可以追溯到Nicholas的 High Performance Javasript 这本书的第一章Loading and Execution中,他之所以建议这么做是因为: Put all <script> tags at the bottom of the page, just inside of the closing </body> tag. This ensures that the page c

【让我们再聊聊浏览器资源加载优化】

几乎每一个前端程序员都知道应该把script标签放在页面底部.关于这个经典的论述可以追溯到Nicholas的 High Performance Javasript 这本书的第一章Loading and Execution中,他之所以建议这么做是因为: Put all <script> tags at the bottom of the page, just inside of the closing </body> tag. This ensures that the page c

[转]让我们再聊聊浏览器资源加载优化

作者 李光毅 发布于 2014年6月27日 几乎每一个前端程序员都知道应该把script标签放在页面底部.关于这个经典的论述可以追溯到Nicholas的 High Performance Javasript 这本书的第一章Loading and Execution中,他之所以建议这么做是因为: Put all <script> tags at the bottom of the page, just inside of the closing </body> tag. This e

简单的使用Seajs

什么是Seajs Seajs是一个加载器 http://yslove.net/seajs/ 遵循 CMD 规范模块化开发,依赖的自动加载.配置的简洁清晰. 兼容性 Chrome 3+ Firefox 2+ Safari 3.2+ Opera 10+ IE 5.5+ 基本应用 导入Seajs库 去官网下载最新的seajs文件, http://seajs.org/docs/#downloads 在页尾引入seajs: <script src="/site/script/sea.js"

轻轻谈一下seaJs——模块化开发的利器

"仅做一件事,做好一件事." 这个应该就是seaJs的精髓了. 我在自己的一些项目中使用过seaJs,对其算是了解一二,现在就班门弄斧,轻轻地谈一下. 首先上一段度娘的话: "seaJs是一个遵循CommonJs规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.与jQuery等JavaScript框架不同,SeaJS不会扩展封装语言特性,而只是实现JavaScript的模块化及按模块加载.SeaJS的主要目的是令JavaScript开

seajs的模块化开发--实践笔记

2017-04-02 SeaJS是一个遵循CMD规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.有效的解决复杂项目中命名冲突.依赖.性能等问题. SeaJS中使用define函数定义一个模块.define可以接收三个参数:require, exports, module. require--模块加载函数,用于记载依赖模块. exports--接口点,将数据或方法定义在其上则将其暴露给外部调用. module--模块的元数据. SeaJS的基本用法有以下