LocalStorage и SessionStorage
30.08.2018
Теги: Cookie • JavaScript • JSON • localStorage • sessionStorage • Web-разработка
LocalStorage
представляет собой хранилище, которое позволяет браузерам сохранять данные на компьютере пользователя, подобно файлам cookie
. В отличие от cookie
, информация не отправляется на сервер при каждом запросе и можно хранить гораздо больший объем данных.
Если говорить языком JavaScript, то localStorage
это свойство глобального объекта браузера (window
). К нему можно обращаться как window.localStorage
или просто localStorage
.
LocalStorage
имеет достаточно простой API. Достаточно знать четыре его метода:
// сохранение значения localStorage.setItem("Ключ", "Значение")
// получение значения localStorage.getItem("Ключ")
// удаление значения localStorage.removeItem("Ключ")
// очистка всего хранилища localStorage.clear()
К сожалению, localStorage
поддерживает сохранение только строковых данных, но не объектов JavaScript. Тем не менее, объекты можно сериализовать и сохранить в виде строк.
// создадим какой-то объект var data = { 'foo': 'bar', 'array': [1, 2, 3] } console.dir(data) // сериализуем его, теперь sData имеет строковое значение var sData = JSON.stringify(data) // запишем сериализованный объект в localStorage с ключом data localStorage.setItem('data', sData) // хранилище вернёт сериализованный объект console.log(localStorage.getItem('data')) // получим сериализованный объект и преобразуем // к обычному объекту JavaScript var sameData = JSON.parse(localStorage.getItem('data')) console.dir(sameData)
Браузеры выделяют 5 Мб под localStorage
и в случае превышения — получите исключение QUOTA_EXCEEDED_ERR
. Кстати, c его помощью можно проверять есть ли в вашем хранилище еще место.
try { localStorage.setItem('Ключ', 'Значение'); } catch (e) { if (e == QUOTA_EXCEEDED_ERR) { alert('Превышен лимит'); } }
Кроме localStorage
, доступен еще объект sessionStorage
, который имеет те же методы. SessionStorage
отличается от localStorage
только тем, что хранит информацию лишь в течение одного сеанса, пока пользователь не закрыл страницу в браузере. В то время как localStorage
хранит информацию постоянно, пока она не будет удалена либо пользователем, либо с помощью JavaScript — каких-либо явных ограничений по времени нет.
- HTTP cookie
- Магазин на Laravel 7, часть 19. Панель управления, добавляем редактор для страниц сайта
- Передача данных между вкладками браузера
- Сервис DaData: подсказки и стандартизация
- TypeScript. Начало работы, часть 7 из 7
- TypeScript. Начало работы, часть 6 из 7
- TypeScript. Начало работы, часть 5 из 7
Поиск: Cookie • JSON • JavaScript • Web-разработка • localStorage • sessionStorage