Koa.js - 压缩



压缩是一种简单有效的带宽节省方式,可加速网站。它仅与现代浏览器兼容,如果您的用户也使用旧版浏览器,应谨慎使用。

服务器发送响应时,如果使用压缩,可以极大改善加载时间。我们将使用一个名为 **koa-compress** 的中间件,来处理文件压缩以及设置相应的头。

继续并使用以下命令安装中间件:-

$ npm install --save koa-compress

现在,在您的 app.js 文件中,添加以下代码:-

var koa = require('koa');
var router = require('koa-router');
var app = koa();

var Pug = require('koa-pug');
var pug = new Pug({
   viewPath: './views',
   basedir: './views',
   app: app //Equivalent to 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(); //Instantiate the router

_.get('/', getRoot);

function *getRoot(next){
   this.render('index');
}

app.use(_.routes()); //Use the routes defined using the router
app.listen(3000);

这将使用我们的压缩中间件。filter 选项是一个用于检查响应内容类型来决定是否压缩的函数。threshold 选项是要压缩的最小响应大小(以字节为单位)。这确保我们不会压缩每一个小响应。

以下是未压缩的响应。

Uncompressed

以下是使用压缩的类似响应。

Compressed

如果您查看底部的 size 标签,您便可以非常直观地看到两者之间的差别。当我们压缩文件时,改善幅度超过 150%。

广告