Ответ
Данные в sessionStorage автоматически очищаются при закрытии вкладки браузера (или окна браузера, если это последняя вкладка).
Ключевые особенности:
- Область видимости: Данные привязаны к протоколу, домену и порту (как и
localStorage), но также изолированы в рамках конкретной вкладки/сессии. - Сохранение при обновлении: Данные сохраняются при перезагрузке страницы (
F5,location.reload()). - Новая вкладка = новое хранилище: Открытие страницы в новой вкладке создает новый, независимый экземпляр
sessionStorage, даже если это тот же URL.
Пример работы с API:
// Запись данных
sessionStorage.setItem('userToken', 'abc123xyz');
sessionStorage.setItem('lastVisitedPage', '/dashboard');
// Чтение данных
const token = sessionStorage.getItem('userToken'); // 'abc123xyz'
// Удаление конкретного элемента
sessionStorage.removeItem('lastVisitedPage');
// Полная очистка хранилища (вручную)
sessionStorage.clear();
// Проверка количества элементов
const count = sessionStorage.length;
Для долговременного хранения данных между сессиями используется localStorage.
Ответ 18+ 🔞
Так, слушай, вот тебе про эту вашу sessionStorage, чтобы ты, наконец, перестал путать её с той, которая localStorage. Это же две большие разницы, ёпта!
Представь себе: sessionStorage — это как твой временный столик в кабаке. Пока ты сидишь за ним, пьёшь пиво, можешь класть на него свои окурки, телефон, ключи — всё, что в голову взбредёт. Но как только ты, мудак, закрыл вкладку (то есть, грубо говоря, встал и ушёл), охуевший официант всё это смахивает тряпкой в пизду. Стол чист. Всё, что не успел в карманы запихнуть — пропало.
Главные приколы этой штуки:
- Где работает: Данные привязаны жёстко. К протоколу, домену и порту. И, что самое главное, к конкретной вкладке. Открыл новую вкладку — получил новый, абсолютно пустой столик. Даже если URL тот же самый. Это как сесть за соседний столик в том же баре — а на нём уже ни твоих окурков, ни твоего пива.
- Перезагрузка — не конец: Страницу обновил (
F5долбил) — всё норм, данные на месте. Это как ты отошёл в сортир, а вернулся — столик твой, и вещи на нём ещё не успели спиздить. - Новая вкладка = новый мудак: Открыл страницу в новой вкладке? Поздравляю, ты получил абсолютно чистый, девственный экземпляр
sessionStorage. Никакой связи со старой вкладкой. Вообще. Ноль.
Ну и как с этим ебланом работать, спросишь ты? А вот так, смотри:
// Запихнули что-то в хранилище
sessionStorage.setItem('userToken', 'abc123xyz'); // Положили ключи от машины
sessionStorage.setItem('lastVisitedPage', '/dashboard'); // И чек из магазина
// Достали обратно
const token = sessionStorage.getItem('userToken'); // 'abc123xyz' — ключи на месте, отлично
// Выкинули какую-то одну херню
sessionStorage.removeItem('lastVisitedPage'); // Чек выбросили, он не нужен
// Устроили полный пиздец и зачистили всё
sessionStorage.clear(); // Всё со стола смахнули, хоть плачь
// Посчитали, сколько там у нас сейчас этого барахла валяется
const count = sessionStorage.length;
А если тебе надо, чтобы данные пережили даже твой уход из кабака (закрытие вкладки), и на следующий день ты пришёл, а они на месте — тогда тебе нужна уже localStorage. Это как твой личный сейф за стойкой бармена. Но это, блядь, уже совсем другая история.