转:几个异步加载 JS 的开源免费框架简介
原帖《几个异步加载 JS 的工具简介》 http://tieba.baidu.com/p/2764689372
由于网站的 js 逐渐增多,最近发现需要用异步来加载它们,以加快网页加载速度。研究了下,发现网上已有好几个的开源免费框架可用,简单罗列下:
1. RequireJS
国外的,已经发展的比较成熟了,功能强大。最新版本的压缩后只有 14K,堪称非常轻量。它还同时可以和其他的框架协同工作,使用 RequireJS 将使您的前端代码质量得以提升。
使用简单示例:
//引入 require.js
<script src="require.js"></script>
//异步加载 jquery,后执行
require(['jquery'], function($) {
alert($().jquery);
});
//同时加载多个js,你可以这样
require(['jquery', 'jquery-ui', 'form'], function($) {
alert($().jquery);
});
2. LABjs
还是国外的,通过优雅的语法(script 和 wait)实现了这两大特性,核心价值是性能优化。LABjs 是一个文件加载器。体积比 RequireJS 更小,只有 5k。
使用示例:
//引入 LABjs
<script src="LAB.js"></script>
$LAB.script("script1.js")
.script("script2.js")
.script("script3.js")
.wait(function(){// 等待所有script加载完再执行这个代码块
script1Func();
script2Func();
script3Func();
});
来个国内的:
3. Orderjs 是一个 JS 按需、异步加载工具,同时也是 JS 模块化管理工具。
使用示例:
//引入 Orderjs
<script src="order.js"></script>
//加载所需模块:
orderjs('jquery', 'jquery-ui', 'form');
alert(typeof jQuery);//结果 undefined, 因为 orderjs 是异步加载以上模块的
//需要将以上语句用一个匿名函数包裹,放到 js 执行队列中,等待 jquery 等模块加载完之后再执行,
//orderjs(fn) 函数即实现此功能:
orderjs(function(){
alert(typeof jQuery);//有了
});
Orderjs 跟 RequireJS 不一样的地方是,前者风格是声明一次所需模块后,后面随处可用;而后者风格是每次都必须声明所需模块,然后执行 callback。
好,先简单记到这,不知大家有没有其它推荐与大家分享?
//转后记:
有网友补充 淘宝和腾讯合作的seajs
浙公网安备 33010602011771号