Ответ
Session Storage и Local Storage — это механизмы клиентского хранения данных в браузере, работающие по принципу «ключ-значение». Их основное различие заключается в времени жизни данных и области видимости.
Session Storage
- Время жизни: Данные сохраняются только на время сессии браузера и удаляются при закрытии вкладки.
- Область видимости: Данные доступны только в контексте той вкладки, где они были созданы.
- Лимит: Обычно около 5 МБ на домен.
- Использование: Для временных данных, например, ввода формы в течение одной сессии.
Local Storage
- Время жизни: Данные не имеют срока действия и сохраняются до явного удаления через JS или очистки браузера.
- Область видимости: Данные доступны для всех вкладок и окон, открытых на одном домене.
- Лимит: Обычно около 5-10 МБ на домен.
- Использование: Для постоянных настроек пользователя (тема, язык) или кэширования.
Пример использования:
// Local Storage — для постоянных настроек
localStorage.setItem('appTheme', 'dark');
const savedTheme = localStorage.getItem('appTheme'); // 'dark'
// Session Storage — для временных данных сессии
sessionStorage.setItem('formDraft', JSON.stringify({ name: 'Alice' }));
const draft = JSON.parse(sessionStorage.getItem('formDraft')); // {name: 'Alice'}
Важно: Оба хранилища синхронны и работают только со строками. Для хранения объектов используйте JSON.stringify() и JSON.parse().
Ответ 18+ 🔞
А, слушай, вот эта вся хуйня с хранилищами в браузере! Ну, типа, два главных чувака: Session Storage и Local Storage. Оба работают по принципу «ключ-значение», как словарик, но живут они по-разному, пиздец как.
Session Storage — это как одноразовый стаканчик, блядь
- Сколько живёт? Ровно до тех пор, пока ты не закроешь вкладку. Хлоп — и всё, хуй с горы, данные испарились. Новую вкладку открыл — там пусто, нихуя нет.
- Кто видит? Только та вкладка, в которой ты это сохранил. Откроешь вторую вкладку на том же сайте — там уже другой сеанс, свои тараканы. Они друг другу не видны, как в параллельных вселенных, блядь.
- Сколько влезет? Ну, примерно 5 МБ на один домен. Не овердохуища, но для временных записок хватит.
- Зачем оно? Ну, например, чтобы сохранить черновик письма, пока ты его пишешь. Закрыл вкладку — и похуй, не надо за собой убирать.
Local Storage — это уже твой личный сейф, ёпта
- Сколько живёт? А хуй его знает! Вообще вечно, пока ты сам не удалишь или пользователь браузер не почистит. Закрыл вкладку, выключил комп, прошло сто лет — открываешь, а данные на месте, как ни в чём не бывало.
- Кто видит? А вот это уже интереснее! Все вкладки и окна, открытые на одном и том же сайте, видят одно и то же хранилище. Сохранил в одной вкладке — подхватил в другой. Удобно, блядь.
- Сколько влезет? Побольше, обычно 5-10 МБ. Уже можно какую-нибудь хрень посерьёзнее засунуть.
- Зачем оно? Ну, для вещей, которые должны помниться. Тёмная тема сайта, язык, логин (только, блядь, не пароль, ты чё, охуел?) — всё это туда.
Смотри, как этим пользоваться, на примере:
// Local Storage — запишем на века, как на камне
localStorage.setItem('appTheme', 'dark'); // Сохранили тему "тёмная"
const savedTheme = localStorage.getItem('appTheme'); // Достали обратно. Будет 'dark'
// Session Storage — запишем на один раз, как на песке
sessionStorage.setItem('formDraft', JSON.stringify({ name: 'Алиса' })); // Сохранили объект
const draft = JSON.parse(sessionStorage.getItem('formDraft')); // Достали и распарсили. Будет {name: 'Alice'}
И главное, запомни, чувак: оба этих хранилища — синхронные, то есть браузер тупо ждёт, пока операция записи или чтения не завершится. И работают они только со строками. Хочешь сохранить объект или массив? Оберни это дело в JSON.stringify(), а когда достаёшь — распакуй через JSON.parse(). А то будешь потом удивляться, почему у тебя в хранилище лежит строка "[object Object]", а не твои данные. Пидарас шерстяной!