原文地址:http://www./2015/01/seajs-combo-%E6%8F%92%E4%BB%B6-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E/ 减少 HTTP 请求数是性能优化中非常重要的一条准则。使用 combo 插件,配合服务器的 nginx-http-concat服务(安装指南),可自动对同一批次的多个模块进行合并下载。 使用场景seajs.use(['a', 'b'], ...); require.async(['a', 'b'], ...); define('id', ['a', 'b'], ...); 上面这些场景中的 引入方式使用很简单,只要加载 <script src="http:///??path/to/sea.js,path/to/seajs-combo.js"></script> 或者在 sea.js 之后用 <script src="path/to/sea.js"></script> <script src="path/to/seajs-combo.js"></script> 推荐用 提示:其他需要线上使用的插件,都推荐通过 配置项comboSyntax
|
var re_cdn_request_uri = /\w+\.r\d+\.(?:js|css)/; // 匹配 xxx.r201501201234.js seajs.config({ charset: 'utf-8' , comboSyntax: [ '/c/=' , ',' ] // for seajs-combo }); seajs.on( 'fetch' , function (req) { var uri = req.requestUri || req.uri; if (uri) { if (re_cdn_request_uri.test(uri)) { uri += (req.uri.indexOf( '?' ) === -1 ? '?' : '&' ) + 'max_age=31104000' ; } req.requestUri = uri; } }); |
|
来自: JhouShuai > 《JAVASCRIPT》