javascript - 缓存 API 响应

标签 javascript node.js

我们的 Angular Web 应用程序依赖于第三方 API,它在响应中返回 JSON 对象,大多数时候它的性能很糟糕,因为我们无法使 API 调用超时,它的数据很重要。有没有办法引入一个缓存数据库来从第三方API获取数据并存储它或一些API缓存机制?如果是,那么数据将如何更新,当实际数据更新时,更新缓存数据的机制是什么。

我不想在客户端缓存数据,因为并非所有用户都可以使用它。我说的是集中式缓存数据库或 API 缓存,其数据可以一致且最新。

谢谢

最佳答案

@Sohail 如果 API 性能很差,那么在客户端使用缓存可能不会有太大帮助。我认为您可以使用类似以下内容来确保网络应用程序的用户获得更流畅的体验。

您还没有提到您的服务器端基础设施。所以,YMMV。

  1. 后台服务 polls 3rd 方 API 并将数据存储在您的服务器上。这可以让您的网络应用免于轮询性能不佳的 API。
  2. 使用后台服务的推送机制(例如 socket.ioWebSocket 或类似)发送 new data事件发送到在浏览器中运行的 Web 应用程序,然后该应用程序从您的服务器(不是第 3 方 API)轮询数据。这使得生态系统中的每个组件(Web 应用程序、调用第 3 方 API 的后台服务以及您自己的 API(仅返回作为轮询第 3 方 API 的结果存储的数据)的 API)的职责更加清晰和精简。

我同意这只是多做一点工作,但它会让应用程序的各个方面都更容易维护。

关于javascript - 缓存 API 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55944285/

相关文章:

node.js - 如何获取从 Alexa 响应到用户回复所耗时?

node.js - 浏览器无法查看上传的文件

带有输出映射的 JavaScript 混淆器

javascript - 控制台以连续模式记录函数并打印函数实现

javascript - Tinymce 获取更改内容

node.js - Dialogflow webhook node.js - 添加在处理意图后运行的处理程序/中间件

node.js - 仅在 mongodb 聚合中返回具有最新子文档的文档

javascript - 如何通过API从S3存储桶下载私有(private)文件

javascript - 如何将 webapp 从 cloudflare 传输到 https?

css - 使用 npm 的 Node Sass CSS 导入器