Koa.js - 缓存


缓存是存储可重用响应以使后续请求更快的术语。每个浏览器都附带了 HTTP 缓存的实现。我们所要做的就是确保每个服务器响应提供正确的 HTTP 标头指令,以指示浏览器何时以及浏览器可以缓存响应多长时间。

以下是在网络应用程序中包含缓存的一些好处 -

  • 您的网络成本降低。如果您的内容已缓存,则您需要为每个后续请求发送较少的内容。

  • 您网站的速度和性能都会提高。

  • 即使您的客户处于离线状态,您的内容也可以使用。

我们将使用 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中间件用于在客户端缓存服务器响应。缓存控制标头是根据我们在初始化缓存对象时提供的选项设置的。我们已将此缓存响应的过期时间设置为 1 年。以下是我们在文件缓存之前和之后发送的请求的比较。

在这个文件被缓存之前,返回的状态码是200,这是OK的。响应标头包含有关要缓存的内容的多个信息,并且还给出了内容的ETag 。

缓存之前

下次发送请求时,它会与 ETtag 一起发送。由于我们的内容在服务器上没有更改,因此其相应的 ETag 也保持不变,并且客户端被告知其本地的副本与服务器提供的内容是最新的,并且应该使用本地副本而不是请求再次。

缓存后

注意- 要使任何缓存文件无效,您只需更改其文件名并更新其引用。这将确保您有一个新文件要发送到客户端,并且客户端无法从缓存中加载它。