Что такое sessionStorage в браузере?

Ответ

sessionStorage — это API веб-хранилища (Web Storage) для временного хранения данных «ключ-значение» в течение сессии конкретной вкладки/окна браузера.

Ключевые отличия от localStorage: Характеристика sessionStorage localStorage
Время жизни Данные очищаются при закрытии вкладки/окна. Данные сохраняются до явного удаления.
Область видимости Изолирована для каждой вкладки (даже с тем же origin). Общая для всех вкладок и окон с одним origin.
Объём ~5 МБ на origin. ~5-10 МБ на origin.

Пример использования:

// Сохранить данные формы при случайном обновлении страницы
sessionStorage.setItem('draftFormData', JSON.stringify(formState));

// Получить данные при загрузке страницы
const savedData = sessionStorage.getItem('draftFormData');
if (savedData) {
  restoreForm(JSON.parse(savedData));
}

// Удалить данные после успешной отправки формы
sessionStorage.removeItem('draftFormData');

Типичные сценарии: Временное хранение данных формы, параметров текущего шага многостраничного процесса (wizard), состояния UI, которое должно сбрасываться при новом сеансе.

Ответ 18+ 🔞

А, ну это же про тот самый sessionStorage, который как пьяный друг на вечеринке — помнит всё, пока не отключится, а наутро ни хуя не помнит!

Смотри, вот в чём прикол, блядь. Есть два брата-хранилища: localStorage — тот самый скряга, который всё тащит в свой сундук и не выбрасывает, пока его насильно не заставишь. А sessionStorage — это его легкомысленный братан, который живёт одним днём, точнее, одной вкладкой. Закрыл вкладку — и всё, пиздец, память как у золотой рыбки.

Короче, вот тебе разбор полётов:

Что сравниваем sessionStorage (Брат-распиздяй) localStorage (Брат-скопидом)
Сколько живёт Пока вкладка не накроется медным тазом. Вечно, пока его не прибьют вручную.
Кто видит данные Только в этой одной вкладке. Открой ещё одну — там уже своя, отдельная жизнь. Все вкладки и окна с одного сайта, как в коммуналке.
Сколько влезет Примерно 5 МБ — вроде много, но если начать пихать туда фотки своих котиков, быстро закончится. Столько же, обычно 5-10 МБ.

А вот где это, блядь, реально пригождается, ёпта:

Ну, например, ты заполняешь дохуищную анкету на каком-то госуслугах, а твой кот запрыгнул на клаву и обновил страницу. Без sessionStorage ты бы просто охренел и пошёл бы пить. А с ним — всё норм, данные-то временно сохранились!

// Пользователь что-то навводил, а мы это припрятали.
sessionStorage.setItem('черновик_анкеты', JSON.stringify(вся_эта_хуйня));

// Страница неожиданно перезагрузилась. Опа!
const сохранённое = sessionStorage.getItem('черновик_анкеты');
if (сохранённое) {
  // Ура, не всё пропало! Восстанавливаем.
  восстановитьФорму(JSON.parse(сохранённое));
}

// Анкету отправили, можно и забыть.
sessionStorage.removeItem('черновик_анкеты');

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