Ответ
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('черновик_анкеты');
Короче, юзай его для: черновиков, шагов в какой-нибудь многостраничной хуйне типа оформления заказа, или чтобы запомнить, свёрнут ли там какой-то блок интерфейса. Всё, что должно испариться, как только пользователь захлопнул вкладку. Просто и без заморочек, в рот меня чих-пых!