有没有一种方法可以在刷新后存储数据

时间:2019-08-04 22:44:13

标签: angular rxjs storage

我是rxjs的新手,正在尝试弄清楚Observables如何在切换和/或重新加载页面时保留数据。

我可以停留在同一页面上,并且缓存服务有效。但是,当我转到 Web应用程序中的另一个页面(这不是单页Web应用程序)时,数据将刷新,并且缓存服务为空。 除了使用localStorage或cookie来存储数据之外,还有其他方法吗?

getToken(id: number): Observable<TempTokens> {
    if (!this._token) {
      const url = `${this.tokenUrl}/${id}`;
      this._token = this.http.get<TempTokens>(url).pipe(
        map((res: TempTokens) => res),
        publishReplay(1),
        refCount(),
      );
    }
    return this._token;
  }

我的目标是不将数据存储在浏览器中,以便防止用户修改存储。

编辑后的重点不是本地存储,也不是单个页面的Web应用

2 个答案:

答案 0 :(得分:0)

sessionStorage将在浏览器刷新后保留下来,而localStarage将在关闭浏览器并重新打开后保留下来。

https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

答案 1 :(得分:0)

Cache API是使用localStorage和SessionStorage的替代方法。

https://developers.google.com/web/fundamentals/instant-and-offline/web-storage/cache-api#retrieving_from_a_cache

尽管用户可以从缓存中删除,但无法修改存储在其中的数据。