【发布时间】:2017-05-24 16:04:08
【问题描述】:
我正在使用 Angular 2 和 Typescript,并希望像保存全局变量一样保存用户对象,这样就不必多次检索它。我找到了会话存储,现在将用户对象保存在那里。
您认为将其存储在那里是一种好习惯还是数据过于敏感?如果是这样,我还可以使用什么其他类型的缓存?
这是我现在使用的代码:
user.service.ts:
getProfile() {
let cached: any;
if (cached = sessionStorage.getItem(this._baseUrl)) {
return Observable.of(JSON.parse(cached));
} else {
return this.http.get(this._baseUrl).map((response: Response) => {
sessionStorage.setItem(this._baseUrl, response.text());
return response.json();
});
}
}
在 ngOnInit() 时在 app.component 中调用 getProfile()。应用程序的其他组件也需要用户对象。
【问题讨论】:
-
为什么不用服务?
-
我确实使用了一项服务。我可以添加我的代码。
-
您可以使用本地存储,因为会话存储仅在当前选项卡上可用,但在关闭后仍然存在(您必须明确删除它)。有关两者之间差异的更多详细信息stackoverflow.com/questions/5523140/…
标签: angular typescript storage session-storage