JavaScript интерфейс Storage
Описание интерфейса
Интерфейс Storage, принадлежащий
API веб-хранилища
предоставляет доступ к локальному объекту хранения (localStorage), или объекту хранения текущего сеанса
(sessionStorage) для определенного домена (создавшего объект хранения источника):
-
sessionStorage- поддерживает отдельную область хранения для каждого заданного источника, доступную на время сеанса страницы (пока существует сеанс вкладки, включая перезагрузку и восстановление страницы). -
localStorage- делает то же самое, но сохраняется даже при закрытии и повторном открытии браузера.
Эти механизмы доступны через свойства объекта Window sessionStorage и
localStorage (точнее говоря, в браузерах объект Window реализует объекты
WindowLocalStorage и WindowSessionStorage, которые содержат свойства
localStorage и sessionStorage). Чтение каждого свойства возвращает связанный с ним объект
Storage, с помощью которого можно устанавливать, извлекать и удалять элементы данных из хранилища.
Для localStorage и sessionStorage для каждого источника (сочетания схемы, хоста и порта)
используется отдельный объект хранения — они функционируют и управляются отдельно друг от друга.
Приватный просмотр (режим инкогнито)
В приватном режиме веб-хранилище обычно изолировано от обычного профиля и очищается после завершения приватного сеанса. Доступ и квоты зависят от политики браузера.
Не рассчитывайте на обязательную доступность хранилища: доступ к свойству может вызвать SecurityError, а
запись — QuotaExceededError. Обрабатывайте ошибки через try/catch.
Разработчики должны знать об этих различных реализациях и учитывать их при разработке веб-сайтов, использующих API веб-хранилища.
Методы интерфейса
| Метод | Описание |
|---|---|
clear()
|
При вызове производит очистку всех ключей из объекта хранилища (объекта Storage). |
getItem()
|
При передаче имени ключа возвращает значение этого ключа, или null, если ключ не существует в
данном объекте хранилища (объекте Storage).
|
key()
|
При передаче целого числа index возвращает имя ключа с этим индексом в хранилище (объекта
Storage).
|
removeItem()
|
При передаче имени ключа удаляет этот ключ из объекта хранилища (при наличии). |
setItem()
|
При передаче имени и значения ключа этот ключ добавляется в хранилище (объект Storage) или
обновляется, если он уже существует.
|
Свойства интерфейса
| Свойство | Описание |
|---|---|
length
|
Возвращает целое число, представляющее число элементов данных, находящихся в хранилище (объекте
Storage).
|
Таблицы перечисляют все собственные методы экземпляра и единственное собственное свойство length (только
чтение). Storage не создаётся через new Storage(). setItem(),
removeItem() и clear() возвращают undefined.
На прототипе интерфейса определено символьное свойство Symbol.toStringTag со строковым именем интерфейса;
оно используется при строковом представлении через Object.prototype.toString.