Я использую 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(). Пользовательский объект также необходим в других компонентах приложения.