Skip to main content

Що робить sessionStorage?

Визначення

sessionStorage - це об'єкт браузера, який зберігає пари "ключ-значення" (рядки) лише поки відкрита поточна вкладка (або вікно). Після закриття вкладки дані автоматично видаляються.

Простіше кажучи: це тимчасове сховище, доступне лише в межах однієї вкладки і домену.


1. Простий приклад

javascript
// Зберегти дані sessionStorage.setItem('user', 'Tim'); // Прочитати дані console.log(sessionStorage.getItem('user')); // "Tim" // Видалити один елемент sessionStorage.removeItem('user'); // Очистити все сховище sessionStorage.clear();

2. Відмінність від localStorage

СховищеТермін життяСпільні дані між вкладкамиОчищається при закритті
localStorageПостійно (до очищення вручну)Так (між вкладками одного домену)Ні
sessionStorageПоки відкрита вкладкаНі (кожна вкладка - своя)Так

Тобто якщо користувач відкриє твій сайт у новій вкладці, у нього буде нове, порожнє sessionStorage.


3. Усі методи такі самі, як у localStorage

МетодЩо робитьПриклад
setItem(key, value)Зберігає значенняsessionStorage.setItem('token', 'abc')
getItem(key)Повертає значенняsessionStorage.getItem('token')
removeItem(key)Видаляє елементsessionStorage.removeItem('token')
clear()Повністю очищаєsessionStorage.clear()
key(index)Повертає ключ за індексомsessionStorage.key(0)
lengthКількість записівsessionStorage.length

4. Приклад: дані форми, які зберігаються, поки вкладка відкрита

javascript
<input id="name" placeholder="Ім'я" /> <script> const input = document.getElementById('name'); // Відновлюємо значення при перезавантаженні сторінки input.value = sessionStorage.getItem('name') || ''; // Зберігаємо при зміні input.addEventListener('input', () => { sessionStorage.setItem('name', input.value); }); </script>

Тепер при оновленні сторінки введене ім'я залишиться, але якщо закрити вкладку і відкрити сайт заново - поле очиститься.


5. Приклад: зберігання даних лише для однієї сесії авторизації

javascript
sessionStorage.setItem('sessionToken', 'abc123'); // при оновленні сторінки токен зберігається console.log(sessionStorage.getItem('sessionToken')); // "abc123" // але при закритті вкладки - зникне

Використовується, коли потрібно зберігати:

  • токен або стан входу лише до закриття вікна,
  • тимчасові дані (наприклад, стан форми чи фільтрів),
  • "чернетки" даних, які не потребують постійності.

6. Важливі особливості

  • Працює лише з рядками, тому для об'єктів:

    javascript
    sessionStorage.setItem('user', JSON.stringify({ name: 'Tim' })); const user = JSON.parse(sessionStorage.getItem('user'));
  • Обсяг зберігання - приблизно 5 МБ.

  • Доступ до даних має лише той самий домен і вкладка.

  • Можна використовувати подію storage, але вона не спрацьовує в тому самому вікні - лише між вкладками (що для sessionStorage зазвичай неактуально).


Підсумок

ПараметрlocalStoragesessionStorage
Термін зберіганняНазавжди (до очищення)Поки вкладка відкрита
Доступ між вкладкамиТакНі
Очищення при закритті вікнаНіТак
Обсяг~5-10 МБ~5 МБ
Тип данихЛише рядкиЛише рядки
Часте застосуванняНалаштування, теми, дані користувачаТимчасові сесії, форми, фільтри

Запам'ятай просто:

  • localStorage - "назавжди",
  • sessionStorage - "поки вкладка відкрита".

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.