Когда мы пользуемся веб-приложениями и посещаем различные веб-сайты, мы, вероятно, не задумываемся о том, как эти приложения сохраняют и хранят данные на нашем компьютере. В сущности, существует два основных механизма хранения данных в браузере, которые разработчики используют для создания более интерактивных и удобных веб-приложений: LocalStorage и SessionStorage.

Давайте представим себе аналогию из жизни, чтобы лучше понять, как они работают.

Пример из жизни

Представьте, что вы посещаете кафе и решаете сделать заказ. Вместо того, чтобы помнить свой заказ и предпочтения в голове, вы предлагаете официанту записать все ваши предпочтения на специальном блокноте. Официант делает запись, и вы можете продолжать наслаждаться разговором с друзьями. Когда приходит время выполнить ваш заказ, официант просто обращается к записям в блокноте и выполняет ваши запросы. LocalStorage и SessionStorage выполняют аналогичную функцию для веб-приложений, помогая хранить и получать данные в браузере.

LocalStorage

LocalStorage — это механизм хранения данных в браузере, который позволяет веб-приложениям сохранять данные на длительное время, даже после закрытия вкладки или перезагрузки страницы.

Это подобно сохранению информации на полке в вашем гардеробе. Вы можете положить что-то туда и забрать это позже в любое удобное время.

Данные в LocalStorage сохраняются на клиентской стороне, и они доступны только для этого конкретного домена. Это означает, что веб-приложение может сохранять данные, которые будут доступны позже, когда пользователь вернется на сайт.

Сохранение данных в LocalStorage

Чтобы сохранить данные в LocalStorage, мы используем метод setItem(key, value), где key — это уникальный идентификатор для нашего значения, а value — собственно само значение, которое мы хотим сохранить. Давайте рассмотрим пример сохранения имени пользователя:

const username = "John";
localStorage.setItem("username", username);

Извлечение данных из LocalStorage

Чтобы извлечь данные из LocalStorage, мы используем метод getItem(key), передавая ему ключ, под которым данные были сохранены. Пример:

const savedUsername = localStorage.getItem("username");
console.log(savedUsername); // Выведет "John"

Удаление данных из LocalStorage

Если мы хотим удалить данные из LocalStorage, мы можем использовать метод removeItem(key), передавая ему ключ, который мы хотим удалить. Пример:

localStorage.removeItem("username");

Проверка наличия данных в LocalStorage

Иногда нам может понадобиться проверить, существуют ли данные с определенным ключом в LocalStorage.

if (localStorage.getItem("username")) {
  console.log("Данные существуют в LocalStorage");
} else {
  console.log("Данные отсутствуют в LocalStorage");
}

SessionStorage

SessionStorage, с другой стороны, похож на LocalStorage, но с некоторыми отличиями. Он также предоставляет возможность хранения данных в браузере, но только на время текущей сессии пользователя.

Подумайте о SessionStorage как о временном хранилище во время посещения кафе. Когда вы приходите в кафе и садитесь за стол, вам выдают специальную корзину, в которую вы можете помещать свои личные вещи. Вы можете положить ключи от машины, кошелек и телефон в корзину и использовать их во время вашего пребывания в кафе. Как только вы уходите из кафе, корзина очищается и ваши вещи больше не доступны. Точно так же SessionStorage хранит данные только в течение текущей сессии и удаляет их, когда пользователь закрывает вкладку или браузер.

Сохранение данных в SessionStorage

Для сохранения данных в SessionStorage мы используем метод setItem(key, value), аналогичный тому, что мы использовали в LocalStorage. Пример:

const email = "example@example.com";
sessionStorage.setItem("email", email);

Извлечение данных из SessionStorage

Для извлечения данных из SessionStorage мы используем метод getItem(key), также аналогичный методу в LocalStorage. Пример:

const savedEmail = sessionStorage.getItem("email");
console.log(savedEmail); // Выведет "example@example.com"

Удаление данных из SessionStorage

Чтобы удалить данные из SessionStorage, мы можем использовать метод removeItem(key):

sessionStorage.removeItem("email");

Очистка SessionStorage

Если нам нужно полностью очистить SessionStorage, мы можем использовать метод clear():

sessionStorage.clear();

Этот код удалит все данные, хранящиеся в SessionStorage.

Что выбрать: LocalStorage или SessionStorage

Использование LocalStorage и SessionStorage зависит от требований и характеристик вашего приложения. Вот список ситуаций, когда рекомендуется использовать каждый из них:

LocalStorage

  • Долгосрочное хранение данных: Используйте LocalStorage, если вам необходимо сохранить данные на длительное время, даже после закрытия вкладки или перезагрузки страницы. Например, сохранение пользовательских настроек, предпочтений или истории действий.
  • Общие данные между вкладками: Если вам нужно обмениваться данными между различными вкладками в браузере, LocalStorage может быть полезным, поскольку он доступен для всех вкладок, открытых для конкретного домена.
  • Хранение кэша или резервной копии: LocalStorage можно использовать для кэширования данных, чтобы ускорить загрузку или сохранить важные данные в случае возникновения сбоев.

SessionStorage

  • Временные данные: Используйте SessionStorage, если вам нужно сохранять данные только на время текущей сессии пользователя. Например, временные состояния форм, выбранные элементы или промежуточные результаты.
  • Безопасность и конфиденциальность: Если вам важно, чтобы данные были доступны только в рамках текущей сессии, SessionStorage подходит лучше. Поскольку данные в SessionStorage удаляются при закрытии вкладки или браузера, они могут быть более безопасными для хранения конфиденциальных или временных данных.
  • Ограничение доступа к данным: Если вам необходимо, чтобы данные были доступны только на определенной странице или в контексте текущей сессии, SessionStorage может помочь ограничить доступ к этим данным.

Важно помнить, что как LocalStorage, так и SessionStorage имеют ограниченный объем хранения данных (обычно около 5 МБ). Если ваши данные превышают этот лимит, или вам нужно обмениваться данными между клиентом и сервером, вы можете рассмотреть использование серверного хранилища или базы данных.


Warning: Undefined variable $aff_bottom_mark in /sites/codelab.pro/wp-content/themes/myTheme/dist/partials/post/post_base.php on line 81

Warning: Undefined variable $aff_bottom_info in /sites/codelab.pro/wp-content/themes/myTheme/dist/partials/post/post_base.php on line 85