背景
小 S 维护的一个前端系统,单个页面中有数个没有依赖关系的 js, css 需要加载,此时浏览器会分别去请求对应的文件。此时小 S 收到 Leader 给的一个任务:优化前端的静态资源请求,尽量做合并。
什么是 Combo Handler?相信很多前端同学并不陌生。2008 年 7 月 YUI Team 宣布在 YAHOO! CDN 上对 YUI JavaScript 组件提供 Combo Handler 服务。简单讲,当前端有 n 个 js 需要分别去拉取时,通过 cdn combo 技术能用一个请求把 js 在服务端合并后拉回,同理可用于 css 文件。
现状
小 S 马上开始着手,看了下手头的项目,目前静态资源是经过 腾讯云 CDN 的,静态资源放在了 腾讯云对象存储 COS,js、css 文件因为模块的不同,被打包成了多个。而腾讯云 CDN 目前不支持 Combo 的方式。
分析
小 S 开始想到了 HTTP2.0,但看了 CDN 的请求配置已开启 HTTP2.0,这一块能提升的空间已不大。那是否能做静态的离线合并处理,看似可行的一条路,但改动量不小,且确实涉及到一些历史原因,这块不好动。小 S 突然想起以前了解过的 CDN Combo,那从请求实时合并入手,也是可行的。但可惜,目前接入