JavaScript: Руководство по localStorage

Источник: «The Ultimate Guide To LocalStorage In JavaScript»
Cookie были единственным способом хранения временной и локальной информации, но теперь у нас есть localStorage. Он широко обсуждается и используется во множестве приложений JavaScript. В этой статье мы рассмотрим всё, что нужно знать о localStorage в JavaScript.

Что такое localStorage?

Представьте, что вы заполняете онлайн-форму, а ваше устройство отключается от интернет-соединения. Вы заполнили свой имя и возраст; всё что вам осталось заполнить, это название вашей страны и пол. Вы заполняете их, пока всё ещё отключены от Wi-Fi. В момент повторного подключения к Wi-Fi вы отправляете заполненную форму.

Когда вы ввели название своей страны и пол без подключения к Интернету, заметили ли вы, что снова можете войти в систему, не потеряв информацию? Это localStorage.

Window.localStorage — свойство только для чтения, которое хранит данные в веб-браузере без использования серверного языка программирования. Используется только JavaScript. Эти данные явно хранятся в домене и используемом протоколе. Кроме того, информация хранится в виде ключ-значение в SQLite файле, расположенном в подкаталоге профиля пользователя.

Среди его применений — хранение содержимого корзины покупок, информация о входе на веб-сайт и отслеживание включил ли пользователь тёмный режим. Это связано с тем, что данные, хранящиеся в localStorage, не имеют срока хранения. Кроме того, он продолжает хранить данные после закрытия браузера.

Не рекомендуется использовать localStorage для хранения конфиденциальной информации, поскольку он подвержен атакам с использованием межсайтовых сценариев (XSS) и другим атакам на основе JavaScript. Кроме того, данные localStorage для документа загруженного в сеансе для приватного просмотра или инкогнито, очищаются после закрытия последней приватной вкладки.

Преимущества localStorage

Есть много преимуществ использования localStorage. В начале списка находится его способность сохранять данные даже после закрытия браузера. Далее приведён список некоторых его преимуществ:

Недостатки localStorage

Использование localStorage имеет не только преимущества, но и недостатки. Вот некоторые из них:

Различия между Cookie и localStorage

Файлы Cookie — это просто данные, хранящиеся в небольших текстовых файлах на вашем устройстве. Они поддерживают состояние пользователя и запоминают информацию о пользователе на всех веб-страницах. Файлы cookie и localStorage имеют общие характеристики, но что их отличает? Вот различия между файлами cookie и localStorage:

Файлы CookielocalStorage
У данных есть срок храненияУ данных нет срока хранения
Файлы Cookie хранятся на сервереК localStorage доступ только через браузер
Максимальный объем хранения 4 КбМаксимальный объём хранения 5 МБ
Подвержен XSS и другим атакам на основе JavaScript.Подвержен XSS и другим атакам на основе JavaScript. Это связано с тем, что localStorage никогда не предназначался для обеспечения безопасности. У него нет защиты данных
Достаточно безопасныНе безопасно

Синтаксис localStorage

Синтаксис localStorage в JavaScript:

windows.localStorage;

// или

localStorage;

Методы localStorage

У localStorage 4 метода для работы с данными:

Применение localStorage

Лучший способ научиться — написать код и посмотреть, как всё работает. Мы будем использовать четыре метода, чтобы понять, как они работают. Запустите браузер и консоль в Инструментах разработчика (обычно это клавиша F12 или Ctrl + Shift + i).

В консоли введите localStorage и получите текущие сохранённые данные (изначально они пусты).

localStorage;
Storage {length: 0}

Введите localStorage.setItem('myKey', 'testValue'). Значение строки testValue сохранится в ключе myKey:

localStorage.setItem('myKey', 'testValue');
undefined

undefined означает, что ни какие данные не были возвращены. Введите localStorage снова и увидите сохранённые данные.

localStorage;
Storage {myKey: 'testValue', length: 1}
myKey: "testValue"
length: 1
>[[Prototype]]: Storage

Введите localStorage.getItem('myKey'), и будет возвращено соответствующее значение:

localStorage.getItem('myKey`);
'testValue'

Введите localStorage.removeItem('myKey') для удаления соответствующей пары ключ-значение:

localStorage.removeItem('myKey');
undefined

undefined означает, что никакое значение не было возвращено, показывая, что пара ключ-значение была очищена. Для подтверждения введите localStorage. Возвращаемая длинна равна 0.

localStorage;
Storage {length: 0}

Введите localStorage.clear() для очистки localStorage вашего домена:

localStorage.clear();
undefined

Заключение

В этой статье мы рассмотрели localStorage и способы его использования. Подумайте о том, что бы добавить этот инструмент в свой код!

Дополнительные материалы

Предыдущая Статья

Laravel 10: Руководство по обновлению

Следующая Статья

PHP: Зачем переносить фигурные скобки на новую строку