foundation

Web Storage

Сравнивайте localStorage и sessionStorage, синхронную стоимость, квоты, сериализацию, время жизни и storage events.

localStorage и sessionStorage хранят строки per origin через простые синхронные API. localStorage переживает сессии; sessionStorage привязан к top-level browsing session. Удобны для мелких несекретных настроек, но не для больших данных, частых записей и секретов при XSS.

					const key = 'theme';
localStorage.setItem(key, JSON.stringify({ mode: 'dark' }));
const theme = JSON.parse(localStorage.getItem(key) ?? '{"mode":"light"}');
				

Событие storage срабатывает в других документах того же origin при изменении localStorage — для синхронизации темы между вкладками, не для надёжной шины сообщений.

На интервью: сравните Web Storage с cookies, IndexedDB, памятью и серверным состоянием по чувствительности и сроку жизни.

Типовые ошибки: синхронные чтения блокируют main thread; токены в Web Storage усиливают последствия XSS.

Компромисс: удобство против контроля — выбирайте механизм под вашу связность и бюджет производительности.

Чеклист:

  • Только мелкие несекретные данные.
  • Явная сериализация со схемой/версией.
  • Не пишите на каждый input.
  • Знайте срок: local vs session.