Основные браузерные хранилища:
// localStorage — навсегда
localStorage.setItem('key', 'value');
// sessionStorage — до закрытия вкладки
sessionStorage.setItem('key', 'value');
// Cookies — с автоматической отправкой
document.cookie = 'key=value';
// IndexedDB — полноценная БД
const db = indexedDB.open('myDB');Браузерные хранилища — как разные типы коробок для хранения вещей. У каждой свой срок годности и назначение! 📦
Хранит данные навсегда, пока не удалишь:
// Сохраняем навсегда
localStorage.setItem('theme', 'dark');
// Даже после перезагрузки компьютера данные остаются
console.log(localStorage.getItem('theme')); // 'dark'
// Объём: 5-10 МБХранит данные только во время сессии:
// Сохраняем до закрытия вкладки
sessionStorage.setItem('formStep', '2');
// После закрытия вкладки всё исчезает
console.log(sessionStorage.getItem('formStep')); // '2' (пока вкладка открыта)
// Объём: 5-10 МБМаленькие данные, которые автоматически летят на сервер:
// Отправляются с каждым запросом на сервер!
document.cookie = 'userId=123; path=/; expires=Fri, 31 Dec 2024 23:59:59 GMT';
// Очень маленький объём: 4 КБ
// Много cookies = медленные запросы!Полноценная база данных в браузере:
// Можно хранить много данных (до ГБ!)
// Работает асинхронно
// Сложнее в использовании
const request = indexedDB.open('myDatabase', 1);
// Для сложных структур данных| Хранилище | Объём | Срок жизни | Автоотправка | Сложность |
|---|---|---|---|---|
| localStorage | 5-10 МБ | Навсегда | Нет | Просто |
| sessionStorage | 5-10 МБ | До закрытия вкладки | Нет | Просто |
| Cookies | 4 КБ | По дате истечения | Да | Средне |
| IndexedDB | До ГБ | Навсегда | Нет | Сложно |
// ✅ Постоянные настройки
localStorage.setItem('language', 'ru');
localStorage.setItem('theme', 'dark');// ✅ Временные данные формы
sessionStorage.setItem('draft', 'текст черновика');// ✅ Токены авторизации (осторожно!)
document.cookie = 'token=abc123';// ✅ Большие объёмы данных
// Офлайн-приложения, игры, редакторы// ❌ Плохо — cookies отправляются с каждым запросом
document.cookie = 'bigData=очень_большие_данные'; // Замедляет сайт!
// ✅ Лучше — использовать localStorage
localStorage.setItem('bigData', 'очень_большие_данные');// ❌ Ошибка — думают, что sessionStorage тоже навсегда
sessionStorage.setItem('important', 'data'); // Исчезнет!
// ✅ Правильно — использовать localStorage для важного
localStorage.setItem('important', 'data');Понимание разных браузерных хранилищ помогает выбирать правильный инструмент для каждой задачи! 💪
Хотите больше статей для подготовки к собеседованиям? Подписывайтесь на EasyAdvice, добавляйте сайт в закладки и совершенствуйтесь каждый день 💪