Ответ
Session Storage — это механизм клиентского хранилища, аналогичный Local Storage, но с ключевым отличием в времени жизни данных.
Основное отличие:
Данные в sessionStorage сохраняются только в течение сессии конкретной вкладки/окна браузера. При закрытии вкладки данные безвозвратно удаляются.
| Сравнительная таблица: | Характеристика | Session Storage | Local Storage |
|---|---|---|---|
| Время жизни | Данные живут в рамках сессии вкладки браузера. | Данные сохраняются до явного удаления. | |
| Объем | ~5 МБ на домен. | ~5-10 МБ на домен. | |
| Область видимости | Изолирована для каждой вкладки/окна (даже с тем же URL). | Общая для всех вкладок и окон с одним происхождением (origin). | |
| API | Аналогичен (setItem, getItem, removeItem, clear). |
Аналогичен. | |
| Формат данных | Только строки. | Только строки. |
Пример использования Session Storage:
// Сохранение временных данных формы при переходе между шагами в одной вкладке
sessionStorage.setItem('multiStepFormData', JSON.stringify({
step1: { name: 'John' },
step2: { email: 'john@example.com' }
}));
// Получение данных на следующей странице/шаге
const formData = JSON.parse(sessionStorage.getItem('multiStepFormData'));
console.log(formData.step1.name); // 'John'
// Данные будут потеряны, если пользователь закроет вкладку.
Типичные сценарии применения:
- Временное хранение данных многостраничной формы (wizard).
- Кэширование информации в рамках одной сессии для избежания повторных запросов.
- Сохранение состояния UI, которое должно сбрасываться при новом открытии приложения.