Учебники

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);

Это ставит наше промежуточное программное обеспечение для сжатия на место. Опция фильтра — это функция, которая проверяет тип содержимого ответа, чтобы решить, следует ли сжимать. Параметр порога — это минимальный размер ответа в байтах для сжатия. Это гарантирует, что мы не сжимаем каждый маленький ответ.

Ниже приводится ответ без сжатия.

несжатого

Ниже приведен аналогичный ответ со сжатием.

Сжатый

Если вы посмотрите на вкладку размера внизу, вы можете очень хорошо увидеть разницу между ними. Улучшение более чем на 150%, когда мы сжимаем файлы.