第2章{ 2-8 使用combo配置减少请求 }

使用combo配置减少请求

什么是combo

上一节中我们有一行代码:

<script src="http://g.tbcdn.cn/kissy/k/1.4.8/??seed-min.js,import-style-min.js"></script>

等价于:

<script src="http://g.tbcdn.cn/kissy/k/1.4.8/seed-min.js"></script>
<script src="http://g.tbcdn.cn/kissy/k/1.4.8/import-style-min.js"></script>

性能优化的黄金法则:尽可能减少http请求,combo可以理解为合并静态资源文件的规则,比如阿里的cdn使用??来合并多个静态资源。

kissy所有的模块都支持combo规则。

默认情况下kissy不使用combo规则:

KISSY.add('bee-demo/test',function(S ,require, exports, module){
    require('node');
    require('io');
    require('anim');
});
KISSY.use('bee-demo/test');

请求如下图所示:

会请求相当数量的模块文件,影响页面加载性能。

我们通过开启combo配置看看:

<script src="http://g.tbcdn.cn/kissy/k/1.4.8/??seed-min.js,import-style-min.js" data-config="{combine:true}"></script>

通过script标签上的 data-config ,可以快速配置kissy的loader,data-config="{combine:true}" 等价于:

<script>
    KISSY.config({
        combine:true
    );
</script>

也等价于:

<script>
    KISSY.config('combine',true);
</script>

开启combine参数后,我们来看下请求的情况:

http://img.mukewang.com/543feb990001ff1812660176.jpg

就只剩下2个请求了!combo对性能优化的作用是巨大的,建议开启。

给包配置combo

除了可以控制kissy模块的combo,也可以控制业务模块的combo,比如有二个包x、y:

KISSY.config({
    // 开启自动 combo 模式
    combine:true,
    packages:{
        x:{
            base:'http://x.com/biz/'
        },
        y:{
           base:'http://x.com/biz/',
           // y 包不开启自动 combo
           combine:false
        }
    }
});

因为,kissy包配置了combine:true,所以x包的combine 默认也为true,x包下的模块会自动combo到一块,比如:

KISSY.add('x/index',function(S ,require, exports, module){
    require('x/a');
    require('x/b');
});

动态加载的脚本地址会是:http://x.com/biz/??index.js,a.js,b.js。

y包配置combine:false,其下的模块文件就不会自动combo。

PS:require 的css文件,一样适用于combo规则,kissy会自动合并css文件。     

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>combo</title>
    <script src="//g.alicdn.com/kissy/k/1.4.8/seed-min.js" charset="utf-8" data-config="{combine:true}"></script>
</head>
<body>
<script>
    KISSY.add('bee-demo/test',function(S ,require, exports, module){
        require('node');
        require('io');
        require('anim');
    });
    KISSY.use('bee-demo/test');
</script>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值