Angular 在应用程序中保存 http 响应

Angular saving http response along application

在我的应用程序中,我定义了一个服务来调用我的 api 来检索一些数据。 api 端的此数据来自数据库 table,该数据库仅更改为 1 time/year,因此我只想检索此数据一次(以提高应用程序性能).

我尝试使用缓存(例如 this example),但它不太适合这种情况,因为每当我的用户刷新页面时,都会再次调用 api。

我的目标是仅在我的应用程序重新启动时或在某个定义的时间后“丢失”我的值。

最好的方法是什么?有点像单身人士?

您可以使用本地存储来保存这些数据。您提到了缓存破坏的两种情况 -

  1. 定义的时间
  2. 应用程序重新启动

您可以通过在您保存的项目上设置额外的“元数据”来实现这两者——您首次保存数据时的时间戳,以及您的应用程序的哈希值(您需要在代码中设置)。这样,在获取项目时,您可以检查版本和插入日期,如果其中一个不符合您的条件,请删除 localStorage 条目并从服务器获取。

所有这些逻辑都应该在您的服务中实现(最好是可以针对不同调用轻松重复的通用代码(也许是装饰器?)