我正在使用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();
});
}
}
的getProfile()被調用的app.component時ngOnInit()。用戶對象在應用程序的其他組件中也是需要的。
你爲什麼不使用服務? –
我確實使用服務。我可以添加我的代碼。 – sanyooh
您可以使用本地存儲,因爲會話存儲僅在當前選項卡上可用,但在關閉後仍然存在(您必須明確刪除它)。關於這兩個區別之間的更多細節http://stackoverflow.com/questions/5523140/html5-local-storage-vs-session-storage – theFreedomBanana