我是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应用
答案 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的替代方法。
尽管用户可以从缓存中删除,但无法修改存储在其中的数据。