在Node环境中缓存内容丰富的内容

时间:2018-04-08 15:52:34

标签: javascript caching contentful

我是一名年轻的开发人员,我致力于开发内容存储在Contentful上的网站。目前,每次重新加载页面时,javascript都会通过API检索Contentful上的内容。

网站的内容不太可能经常更改,因此我想将其缓存。

该网站存储在Netlify上。 Link

所以我认为我可以在Node构建上恢复Contentful上的内容,将其存储在javascript可以在加载页面时使用的“缓存”中。在Contentful上进行修改时,webhook会在Netlify上触发重建。

我不知道我的想法是否合适,谢谢你的帮助和答案。

2 个答案:

答案 0 :(得分:1)

Contentful实际上已在其服务中内置了缓存,因此您无需执行任何操作即可在网站上获得缓存的好处。引用内容丰富的文档:

  

对达到​​我们的CDN缓存的请求没有任何限制,即,该请求不计入您的速率限制,并且您可以进行无限量的缓存命中。对于确实达到要求的请求,默认情况下,Contentful Delivery API强制执行每秒78个请求和每小时280800个请求的速率限制。可能会根据您当前的计划设置更高的费率限制。

有关详细信息,请参见https://www.contentful.com/developers/docs/references/content-delivery-api/#/introduction/api-rate-limits

如果您想对Contentful API进行额外的缓存,可以利用Node库来为您完成。在此用例中,类似APICache的东西会很好地工作。

如果发布新内容时重新构建堆栈(而不是将其呈现在页面视图上)对您而言很重要,那么我建议您看一下静态站点。 Contentful具有强大的webhook支持,您可以将其与Netlify一起使用,以在作者推送新内容时帮助您重建网站。查看有关使用盖茨比的本教程,了解更多详细信息-https://www.contentful.com/blog/2018/02/28/contentful-gatsby-video-tutorials/

答案 1 :(得分:0)

最好单独缓存页面(而不是缓存整个站点)并使用cron作业将每个页面的缓存(可能是每周)与当前版本进行比较。如果不同,请重新生成该页面的缓存。此外,您可能希望手动触发,可能在部署时或在特定页面上发生更改的罕见事件中。

无论如何,在您开始执行所有这些缓存之前,您应该检查您的网站是否在附近被请求所淹没。如果没有,那么缓存可以推迟到以后,这将是明智的,因为,如果您的网站的性质会随着时间的推移而发生变化,并且经常会发生变化,您可能需要不同的缓存,甚至根本不需要缓存。