Хранение данных
• 195
for (var i = 0; i < sessionStorage.length; i++) {
alert( sessionStorage.key(i) + '=' +
¬ sessionStorage.getItem( sessionStorage.key(i) ) );
}
Предупреждение: вполне возможно, что какое-то значение будет записано с ключом «key»,
например, вы создадите его с
помощью такого кода:
sessionStorage.setItem('key',
¬ '27152949302e3bd0d681a6f0548912b9');
У вас есть значение, которому соответствует ключ «key», и метод
key
для объекта храни-
лища. Чуете, куда ветер дует?
Некоторые браузеры, в
частности WebKit, переопределяют метод
key
, используя указанное
вами новое значение. Однако в инструментах разработки WebKit метод
key
применя-
ется для перечисления и отображения всех данных, связанных с объектом хранилища.
Получается, что представление данных для указанного типа хранилища (в нашем случае —
sessionStorage
) будет «сломано» до тех пор, пока двойственное значение не будет удалено.
ПРИМЕЧАНИЕ
Надеюсь, по мере развития браузеры избавятся от подобных ошибок, но пока что могу только
посоветовать не использовать имена, уже имеющиеся в
API хранилища
В других браузерах, таких как Firefox, метод
key
и значение «key» разделяются. Получить
метод можно, применяя синтаксис
expando
, а для получения значения можно использовать
getItem('key')
.
Удаление данных
Существует три
способа программного удаления данных из объекта хранилища: напрямую
с помощью
deleter
,
removeItem
и
clear
. Метод
removeItem
принимает ключ (тот же, ко-
торый используется с
setItem
и
getItem
) и удаляет соответствующую запись.
Для того чтобы очистить объект хранилища полностью, удалив все записи, используйте
clear
, например:
sessionStorage.setItem('remy',
"Master of the Universe");
sessionStorage.setItem('bruce',
"Master of the Puniverse");
Достарыңызбен бөлісу: