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
Метод Описание
clear() При вызове производит очистку всех ключей из объекта хранилища (объекта Storage).
getItem() При передаче имени ключа возвращает значение этого ключа, или null, если ключ не существует в данном объекте хранилища (объекте Storage).
key() При передаче целого числа index возвращает имя ключа с этим индексом в хранилище (объекта Storage).
removeItem() При передаче имени ключа удаляет этот ключ из объекта хранилища (при наличии).
setItem() При передаче имени и значения ключа этот ключ добавляется в хранилище (объект Storage) или обновляется, если он уже существует.

Свойства интерфейса

Свойство Описание length — Storage
Свойство Описание
length Возвращает целое число, представляющее число элементов данных, находящихся в хранилище (объекте Storage).

Таблицы перечисляют все собственные методы экземпляра и единственное собственное свойство length (только чтение). Storage не создаётся через new Storage(). setItem(), removeItem() и clear() возвращают undefined.

На прототипе интерфейса определено символьное свойство Symbol.toStringTag со строковым именем интерфейса; оно используется при строковом представлении через Object.prototype.toString.

Спецификация

HTML Standard: Storage.