Публикации - API web-хранилища

Сохранение чисел и дат

Т.к. сохраняемые данные автоматически преобразуются в текст, то перед выводом, если мы хотим получить число, данные нужно преобразовать с помощью функции Number():

var value = Nubmer(sessionStorage[keyword]);

При преобразовании типов, следует проявлять осторожность. Для некоторых типов данных существуют удобные процедуры преобразования, но например, если мы сохранили следующую дату:

var today = new Date();

Этот код сохранит не объект даты, а текстовую стоку. Например, Sat Jun 2013 13:30:46. К сожалению, не существует легкого способа преобразования этого текста обратно в дату.

Чтобы решить эту проблему, мы должны явно преобразовать дату в текст, а потом выполнить обратное преобразование.

var today = new Date();
sessionStorage['session_started'] = today.getFullYear() + “/”
   + today.getMonth() + “/” + today.getDate();
…
today = new Date(sessionStorage['session_started']);
alert(today.getFullYear);

В результате выполнения этого кода, появится окно сообщения, подтверждающее успешное восстановление объекта даты.

Сохранение объектов

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

Создадим функцию PersonalityScore:

function PersonalityScore(o, c, e, a, n){
 this.openness = o;
 this.cons = c;
 this.extraversion = e;
 this.agreeable = a;
 this.neuroticism = n;
}

Создаем объект PersonalityScore

 var score = new PersonalityScore(o, c, e, a, n);

Для преобразования объекта в формат JSON, вызовем метод JSON.stringify().

sessionStorage['personalityScore'] = JSON.stringify(score);

Для обратного преобразования, воспользуемся методом JSON.parse:

var scope = JSON.parse(sessionStorage);

Если мы собираемся сохранять большие объемы данных и на длительное время, то необходимо использовать объект localStorage. При этом, решение о том, требуется ли информация, хранящаяся в объекте или нет, принимает сам пользователь.

Система localStorage использует такой же интерфейс, что и sessionStorage. Поэтому, для localStorage можно использовать те же методы и свойства, которые мы использовали ранее. Придется внести единственное изменение: заменить префикс session префиксом local.

localStorage.setItem(keyword, value);

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться