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

问题描述 投票:1回答:2

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

网站的内容不太可能经常更改,所以我想缓存它。

该网站存储在Netlify上。 Link

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

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

javascript caching contentful
2个回答
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一起使用,以便在作者推送新内容的任何时候帮助重建您的网站。查看本教程有关使用Gatsby的更多详细信息 - https://www.contentful.com/blog/2018/02/28/contentful-gatsby-video-tutorials/


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.