Angular 显示缓存数据并在后台需要数据时更新新数据

Boa*_*rty 3 angular

我正在开发一个 Angular 应用程序,它可以处理来自服务器的大量数据。因此,每个 API 调用最多可能需要 5 秒,而且有些页面的 API 调用很少。

我想要实现的是将我访问的每个页面的数据保存在缓存中,如果我再次导航到该页面,我将立即看到缓存的数据,调用 API 来获取新数据并仅刷新其模型具有的组件改变了。

现在,API 调用是从方法和应用程序显示微调器中完成的ngOnInit,直到显示结果。

除了将 json 保存在本地存储或类似的东西之外,是否有任何最佳实践可以在 Angular 中实现该行为?

and*_*pta 8

TL;博士;谷歌搜索“RxJS 缓存技术”

更大的答案:

有几种选择:

  • 将数据保存到localStorage/sessionStorage如果您需要持久保存
  • 将其作为纯数据保存在服务中(只是一些变量)
  • 用类似的东西模拟状态BehaviorSubject并检索它的最新值(文章例如
  • 使用缓存
  • 使用像NgRx这样的存储(如果你有的话)

...还有更多取决于您想要什么以及代码的构建方式。

BehaviorSubject如果我是你 -如果它是一个简单的应用程序并且没有巨大的状态和管理,我会选择初始版本。