использование локального сеанса для поддержания состояния - PullRequest
0 голосов
/ 05 марта 2012

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

У меня есть некоторые данные, которые вставляются в HTML на сервере. В разделе document.ready страницы у меня есть что-то вроде этого:

MyStorage = window.sessionStorage;
MyStorage.setItem('MyVar', $('#TheVar').html());

Если позже я напишу это:

ThisVar = MyStorage.getItem('MyVar');
ThisVar = 3;

Будет ли значение в хранилище сеансов также равным 3? И будет ли значение всех переменных ThisVar в других вкладках также равным 3, когда я изменю значение ThisVar в одной вкладке?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 05 марта 2012
  1. Нет, поскольку вы присваиваете новое значение ThisVar, а не паре ключ-значение sessionStorage.
  2. Нет, переменные не обновляются магическим образом.getItem возвращает значение, то есть строку сохраненного ключа.
0 голосов
/ 05 марта 2012
  1. старайтесь избегать прописных переменных, это соглашение об именах только для классов.
  2. используйте ключевое слово var для инициализации переменных.

  3. (ответ на ваш вопрос) Нет. Вы не работаете со ссылками, функция localStorage.getItem() возвращает значение в виде строки, а не в качестве ссылки.Вам необходимо использовать функцию localStorage.setItem(), как вы это делали в первую очередь, для обновления хранилища.Поэтому я бы порекомендовал вам работать непосредственно с хранилищем и не использовать дополнительные переменные.(С другой стороны, вы можете использовать функцию, которая обновляет хранилище при изменении значения вашей переменной.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...