Ответ
localStorage — это API веб-хранилища (Web Storage), предоставляющий постоянное хранилище данных в формате «ключ-значение» на стороне клиента.
Характеристики:
- Постоянство: Данные не имеют срока годности и сохраняются после закрытия браузера и перезагрузки ОС.
- Объём: Ограничение ~5-10 МБ на домен (зависит от браузера).
- Доступ: Только в контексте одного источника (origin) — комбинации протокола, домена и порта.
- Тип данных: Хранит только строки. Для объектов необходимо использовать
JSON.stringify()иJSON.parse(). - Синхронность: Операции блокируют основной поток (не используйте для больших данных).
Базовые операции:
// Запись
localStorage.setItem('theme', 'dark');
localStorage.setItem('user', JSON.stringify({ id: 1, name: 'Alice' }));
// Чтение
const theme = localStorage.getItem('theme'); // 'dark'
const user = JSON.parse(localStorage.getItem('user')); // { id: 1, name: 'Alice' }
// Удаление одного элемента
localStorage.removeItem('theme');
// Полная очистка хранилища для текущего origin
localStorage.clear();
Важно: Данные доступны для JavaScript на той же странице, но не отправляются на сервер автоматически с каждым HTTP-запросом (в отличие от cookies).
Ответ 18+ 🔞
А, ну это же про ту самую штуку, где браузер в своей подворотне данные прячет! localStorage, блядь. Представь себе такой цифровой чулан под лестницей, куда ты можешь закинуть свои пожитки и они там, сука, навсегда останутся, пока ты сам их не выкинешь или пользователь не придет с метлой.
Это не печеньки, которые на сервер уплывают, нет. Это чисто твоя, ебать, локальная заначка. Хранишь что хочешь, но есть нюансы, блядь.
Вот на что смотреть:
- Навечно, сука: Закинул — и всё. Закрыл браузер, вырубил комп, прошел год — данные на месте, как будто их Герасим сторожит. Пока не скажешь «удалить» или пользователь не почистит хранилища — они там.
- Не резиновое: Места примерно 5-10 мегабайт на один сайт. Многовато для текста, но если ты туда, блядь, фотки в Base64 пихать начнешь — быстро кончится, ёпта.
- Свой угол: Данные с сайта
https://moysait.ruне увидит сайтhttps://drugoy.ru. У каждого своя камера хранения, своя параша, блядь. И порт ещё учитывается, этот ёперный театр. - Только строки: Вот это, блядь, главный подвох! Нельзя туда просто так объект сунуть. Только текст. Хочешь сохранить пользователя? Придется его, этого пользователя, в строку превратить, как колбасу в фарш.
- Тормозит: Операции синхронные, то есть пока ты что-то записываешь или читаешь — всё остальное ждет. Не надо туда гигабайты лог-файлов пихать, а то страница встанет колом, пиздец.
Как этим пользоваться, не обосравшись:
// Запихнуть что-то в чулан
localStorage.setItem('theme', 'dark'); // Ключ и значение — строки
localStorage.setItem('user', JSON.stringify({ id: 1, name: 'Alice' })); // Объект сначала в строку!
// Достать обратно
const theme = localStorage.getItem('theme'); // Достанешь 'dark'
const user = JSON.parse(localStorage.getItem('user')); // А тут строку обратно в объект собираем. Без JSON.parse() получишь просто текст, который нихуя не работает.
// Выкинуть одну вещь
localStorage.removeItem('theme'); // Тема нахуй не нужна
// Устроить тотальную зачистку
localStorage.clear(); // Всё, чулан пуст. Все твои данные — в пизду.
Запомни главное: это твоя личная помойка на стороне клиента. Сервер про неё нихуя не знает, если ты сам не отправишь. Удобно для тем, настроек, корзины — всякой такой хуйни, которая должна пережить обновление страницы. Но доверять этому хранилищу, как родной матери, тоже не стоит — пользователь в любой момент может всё почистить, и волнение ебать, данные твои накрылись медным тазом.