我们的 Angular Web 应用程序依赖于第三方 API,它在响应中返回 JSON 对象,大多数时候它的性能很糟糕,因为我们无法使 API 调用超时,它的数据很重要。有没有办法引入一个缓存数据库来从第三方API获取数据并存储它或一些API缓存机制?如果是,那么数据将如何更新,当实际数据更新时,更新缓存数据的机制是什么。
我不想在客户端缓存数据,因为并非所有用户都可以使用它。我说的是集中式缓存数据库或 API 缓存,其数据可以一致且最新。
谢谢
最佳答案
@Sohail 如果 API 性能很差,那么在客户端使用缓存可能不会有太大帮助。我认为您可以使用类似以下内容来确保网络应用程序的用户获得更流畅的体验。
您还没有提到您的服务器端基础设施。所以,YMMV。
- 后台服务
polls
3rd 方 API 并将数据存储在您的服务器上。这可以让您的网络应用免于轮询性能不佳的 API。 - 使用后台服务的推送机制(例如
socket.io
、WebSocket
或类似)发送new data
事件发送到在浏览器中运行的 Web 应用程序,然后该应用程序从您的服务器(不是第 3 方 API)轮询数据。这使得生态系统中的每个组件(Web 应用程序、调用第 3 方 API 的后台服务以及您自己的 API(仅返回作为轮询第 3 方 API 的结果存储的数据)的 API)的职责更加清晰和精简。里>
我同意这只是多做一点工作,但它会让应用程序的各个方面都更容易维护。
关于javascript - 缓存 API 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55944285/