Koajs-caching
提供:Dev Guides
Koa.js-キャッシュ
キャッシングは、後続のリクエストを高速化するために再利用可能な応答を保存するための用語です。 すべてのブラウザには、HTTPキャッシュの実装が付属しています。 必要なことは、各サーバー応答が正しいHTTPヘッダーディレクティブを提供して、ブラウザーが応答をキャッシュするタイミングと時間をブラウザーに指示することです。
以下は、Webアプリにキャッシュを含める利点です。
- ネットワークコストが減少します。 コンテンツがキャッシュされている場合、以降のリクエストごとに送信する必要のあるコンテンツは少なくなります。
- Webサイトの速度とパフォーマンスが向上します。 *クライアントがオフラインであっても、コンテンツを利用可能にすることができます。
koa-static-cacheミドルウェアを使用して、アプリにキャッシュを実装します。 を使用してこれらのミドルウェアをインストールします-
$ npm install --save koa-static-cache
app.jsファイルに移動し、次のコードを追加します。
var koa = require('koa');
var app = koa();
var path = require('path');
var staticCache = require('koa-static-cache');
app.use(staticCache(path.join(__dirname, 'public'), {
maxAge: 365* 24 *60* 60 //Add these files to caches for a year
}))
app.listen(3000);
*koa-static-cache* ミドルウェアは、クライアント側でサーバー応答をキャッシュするために使用されます。 *cache-control* ヘッダーは、キャッシュオブジェクトの初期化中に指定したオプションに従って設定されます。 このキャッシュされた応答の有効期限を1年に設定しました。 以下は、ファイルがキャッシュされる前後に送信したリクエストの比較です。
このファイルがキャッシュされる前は、返されたステータスコードは200でしたが、これで問題ありません。 応答ヘッダーには、キャッシュされるコンテンツに関する複数の情報があり、コンテンツの ETag も指定されていました。
次にリクエストが送信されたときに、ETtagとともに送信されました。 サーバー上のコンテンツは変更されていないため、対応するETagも同じままで、クライアントはローカルにあるコピーがサーバーが提供するもので最新のものであり、リクエストする代わりにローカルのものを使用する必要があると通知されました再び。
注意-キャッシュされたファイルを無効にするには、ファイル名を変更して参照を更新するだけです。 これにより、クライアントに送信する新しいファイルが確保され、クライアントはそのファイルをキャッシュから読み込むことができなくなります。