Как использовать localStorage и sessionStorage

12 set 2022 3 min di lettura
Как использовать localStorage и sessionStorage
Indice dei contenuti

Введение

localStorage sessionStorage, часть API веб-хранилища, — это два отличных инструмента для локального сохранения пар ключ/значение. Использование localStorage и sessionStorage для хранения является альтернативой использованию файлов cookie и имеет некоторые преимущества:

  • Данные сохраняются только локально и не могут быть прочитаны сервером, что устраняет проблему безопасности файлов cookie.
  • Это позволяет вам сохранять гораздо больше данных (10 МБ для большинства браузеров).
  • Синтаксис прост.

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

Предпосылки

Для выполнения этого урока вам потребуется следующее:

  • Последняя версия Node, установленная на вашем компьютере. Чтобы установить Node, прочтите руководства на этой странице.
  • Базовое понимание программирования на JavaScript.

Понимание localStorage и sessionStorage

localStorage и sessionStorage почти идентичны и имеют одинаковый API. Разница в том, что с sessionStorage данные хранятся только до закрытия окна или вкладки. С localStorage данные сохраняются до тех пор, пока пользователь не очистит кеш браузера вручную или пока веб-приложение не очистит данные. В этом руководстве представлено localStorage, но синтаксис для sessionStorage такой же.

Обладая этими знаниями, вы теперь можете создавать, читать и обновлять пары ключ/значение в localStorage.

Создание, чтение и обновление записей

Вы можете создавать записи для объекта localStorage с помощью setItem(). Метод setItem() принимает два аргумента, key и соответствующее значение:

let key = 'Item 1';
 localStorage.setItem(key, 'Value');

Чтобы прочитать записи, используйте метод getItem(). Метод getItem() принимает аргумент, который должен быть ключом. Эта функция вернет соответствующее значение в виде строки:

let myItem = localStorage.getItem(key);

Этот код устанавливает myItem равным 'Value', что является соответствующим значением для key.

Обновление элемента выполняется методом setItem(). Опять же, он принимает два аргумента. Ключевым аргументом будет существующий ключ, а аргументом значения будет новое значение:

localStorage.setItem(key, 'New Value');

Теперь значением localStorage для key является 'New Value' вместо 'Value'.

Вы можете создавать, читать и обновлять записи в объекте localStorage. Вы также можете удалить отдельные записи и удалить все записи в формате localStorage.

Удалить и удалить и записи

Вы можете удалить элемент с помощью removeItem(). Метод removeItem() принимает аргумент, который будет являться ключом объекта localStorage:

localStorage.removeItem(key);

Вы также можете удалить все элементы в localStorage. Это можно сделать с помощью метода clear():

Вот как очистить все, что хранится в localStorage:

localStorage.clear();

Эти методы дают вам возможность быстро удалять элементы из localStorage. Однако у localStorage есть некоторые ограничения. И localStorage и sessionStorage могут хранить только строки. Чтобы обойти эту проблему, вам нужно будет использовать методы JSON.

Сохраняйте нестроковые значения с помощью JSON

localStorage может хранить только строковые значения. Если вы хотите хранить объекты или массивы как значения в localStorage, вы можете использовать JSON.stringify() для преобразования их в строки. При создании или обновлении пар ключ/значение в localStorage используйте JSON.stringify() с объектом или массивом в качестве аргумента:

let myObj = { name: 'Skip', breed: 'Labrador' };
 localStorage.setItem(key, JSON.stringify(myObj));

Хотя myObj является объектом, метод JSON.stringify(myObj) преобразует его в строку. Таким образом, myObj теперь является допустимым значением localStorage.

Для чтения и возврата строковых значений используйте метод JSON.parse(). Метод JSON.parse() принимает строки JSON и преобразует их в объекты JavaScript. JSON.parse() принимает .getItem() в качестве аргумента:

let item = JSON.parse(localStorage.getItem(key));

Теперь item устанавливается равным значению key. В предыдущем фрагменте кода значением key была установлена строковая версия myObj. Использование JSON.parse преобразует myObj обратно в объект. Таким образом item устанавливается равным myObj как объект, а не строка.

Возможность преобразовывать массивы и объекты в строки с помощью JSON.stringify и преобразовывать их обратно с помощью JSON.parse очень полезна. Вам также нужно знать, как проверить, является ли localStorage пустым или нет.

Проверьте статьи

На этом шаге вы проверите наличие элементов в localStorage. Вы можете использовать объявления if чтобы проверить, содержит ли localStorage элементы или оно пусто. Для этого проверьте длину localStorage:

if (localStorage.length > 0) {
 //...
 }

Если localStorage.length больше 0, то внутри объекта localStorage есть элементы. Включите оператор else, если в localStorage нет элементов:

if (localStorage.length > 0) {
 //...
 } else {
 //...
 }

Вы можете включить код для применения в операторах if и else. Вы можете перебрать элементы в localStorage.

Повторение элементов

localStorage и sessionStorage не поддерживают метод forEach. Для перебора элементов в localStorage используйте цикл for:

for (let i = 0; i < localStorage.length; i++){

 }

Метод key() принимает в качестве аргумента целое число и возвращает соответствующий ключ. В цикле for передайте i как целое число для key():

for (let i = 0; i < localStorage.length; i++){
 let key = localStorage.key(i);
 }

Используйте метод getItem, чтобы вернуть соответствующее значение для key:

for (let i = 0; i < localStorage.length; i++){
 let key = localStorage.key(i);
 let value = localStorage.getItem(key);
 }

Создайте оператор console.log для вывода на экран key и value:

for (let i = 0; i < localStorage.length; i++){
 let key = localStorage.key(i);
 let value = localStorage.getItem(key);
 console.log(key, value);
 }

key() очень полезен для localStorage с использованием циклов for. Не все браузеры поддерживают localStorage.

Проверьте СМИ

Вы можете протестировать поддержку localStorage, проверив, доступно ли window для объекта с помощью оператора if:

if (window.localStorage) {
 //localStorage supported
 }

Вы также можете использовать веб-сайт Can I use…, чтобы проверить поддержку localStorage для основных браузеров.

Вывод

Вы можете использовать localStorage или sessionStorage для хранения пар ключ/значение. Существуют методы, позволяющие взаимодействовать с элементами в localStorage. С помощью этого руководства вы создали, удалили и обновили записи в localStorage. Вы также преобразовывали данные массива и объекта в строки и наоборот, используя методы JSON.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.