Можно ли использовать sessionstorage вместо общего сервиса?

Я просто хотел бы знать, плохо ли использовать sessionStorage вместо sharedservice в Angular. Причина в том, что sessionStorage настолько прост:

  • Я могу легко получить к нему доступ из любого места в моем приложении
  • Мне не нужно беспокоиться об импорте его повсюду
  • Мне не нужно беспокоиться о проблемах с круговой инъекцией

sessionStorage настолько прост в использовании, что я хотел бы использовать его для хранения таких вещей, как текущий зарегистрированный пользователь, доступ пользователя, базовый URL-адрес для вызовов ... все, что я бы поместил в общий сервис

Не лучшая практика?

Freddy Bonda 31.10.2018 13:05

ну, в частном режиме Safari нет локального / сеансового хранилища. Я считаю, что sessionStorage предназначен только для одной вкладки браузера. С сервисами легко работать, и если вы беспокоитесь, что потеряете некоторые данные после обновления страницы, то эти данные, вероятно, следует сохранить в вашей базе данных.

Aleksey Solovey 31.10.2018 13:15
0
2
645
1

Ответы 1

вы можете использовать sessionStorage везде в своем приложении, но это не лучший способ решить проблему. Только представьте, если в будущем вы захотите переключиться на другой механизм хранения, например, store.js, собираетесь ли вы изменить все ссылки в своем приложении с помощью новой библиотеки?

Это проще и намного гибче, если вы создадите крошечную оболочку вокруг механизма хранения, которая будет просто вызывать библиотеку прозрачно из вызывающей стороны.

что-то вроде:

angular.service('Storage', function() {

  this.set = (key, value) => {
    storageMechanism.set(key, value);
  };

  this.get = key => {
    return storageMechanism.get(key);
  };

});

Другие вопросы по теме