Koa.js 压缩

压缩是节省带宽和加快站点速度的一种简单有效的方法。 它仅与现代浏览器兼容,如果我们的用户也使用旧版浏览器,则应谨慎使用。

从服务器发送响应时,如果使用压缩,可以大大提高加载时间。 我们将使用一个名为 koa-compress 的中间件来处理文件的压缩以及设置适当的标头。

安装中间件

$ npm install --save koa-compress

现在在我们的 app.js 文件中,添加以下代码

var koa = require('koa');
var router = require('koa-router');
const compress = require('koa-compress');
var app = new koa();

var Pug = require('koa-pug');
var pug = new Pug({
   viewPath: './views',
   basedir: './views',
   app: app // 等价于 app.use(pug)
});

app.use(compress({
   filter: function (content_type) {
      return /text/i.test(content_type)
   },
   threshold: 2048,
   flush: require('zlib').Z_SYNC_FLUSH
}));

var _ = router();

_.get('/', async (ctx,next) => {
   await ctx.render('index');
});

app.use(_.routes()); // 使用由 router 定义的路由
app.listen(3000);

这里使用我们的压缩中间件。 filter 选项是检查响应内容类型以决定是否压缩的功能。 threshold 选项是要压缩的最小响应大小(以字节为单位)。 这确保我们不会压缩那些本身内容就少的响应。

以下是没有压缩的响应。

koa 未压缩的响应

以下是压缩之后的响应。

koa 压缩响应

如果我们查看底部的 size 标签,可以很好地看到两者之间的区别。 当我们压缩文件时,有相当大的改进。

查看笔记

扫码一下
查看教程更方便