PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Для чего нужен local storage?

DOM и браузер

localStorage нужен для хранения данных на клиенте с бессрочным сроком жизни — настроек, черновиков, простого кеша, которые должны сохраняться между сессиями.

Для чего используют

  • Настройки/предпочтения — тема, язык, макет.
  • Черновики — несохранённый ввод форм.
  • Простой кеш — данные, которые дорого перезапрашивать.
  • Флаги — «баннер закрыт», «онбординг пройден».
localStorage.setItem('theme', 'dark');
localStorage.getItem('theme'); // 'dark'
localStorage.setItem('user', JSON.stringify({ name: 'Ann' })); // объекты через JSON

Особенности

  • Бессрочно — данные сохраняются, пока не удалят.
  • ~5–10 МБ — больше cookie.
  • Только строки — объекты сериализуют через JSON.
  • Только клиент — не отправляется на сервер.
  • Синхронный API.
  • Общий для вкладок одного origin.

Событие storage

Изменение localStorage в одной вкладке вызывает событие storage в других — для синхронизации.

Ограничения

  • Не для секретов — уязвим к XSS (токены хранят в памяти/HttpOnly cookie).
  • Синхронный доступ может блокировать при больших объёмах.

Коротко для собеседования

localStorage нужен для клиентского хранения данных, переживающих сессии: настройки, черновики, простой кеш, флаги. Бессрочный, ~5–10 МБ, только строки (объекты через JSON), только клиент, синхронный. Не для токенов (XSS). Изменения ловятся событием storage в других вкладках.

Другие вопросы раздела