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%。

廣告
© . All rights reserved.