Какие плюсы и минусы storage?
DOM и браузер
Плюсы браузерных хранилищ (localStorage/sessionStorage): простое клиентское хранение, работа офлайн, разгрузка сервера. Минусы: уязвимость к XSS, только строки, синхронность, лимиты объёма.
Плюсы
- Простое хранение на клиенте — простой API (
setItem/getItem). - Персистентность — localStorage переживает сессии (настройки, черновики).
- Разгрузка сервера — данные на клиенте, не нужно каждый раз запрашивать.
- Работа офлайн — доступ без сети.
- Больше cookie (~5–10 МБ против 4 КБ).
- Не шлётся на сервер — не грузит каждый запрос (в отличие от cookie).
Минусы
- Уязвимость к XSS — доступен любому JS → токены хранить нельзя.
- Только строки — объекты сериализовать через JSON.
- Синхронный API — большие объёмы блокируют поток.
- Лимиты — ~5–10 МБ (для больших данных — IndexedDB).
- Нет реактивности — изменения не отслеживаются автоматически (кроме события
storageмежду вкладками). - Не для сервера — на сервер не отправляется.
Как выбирать
- Некритичные настройки/черновики → localStorage.
- Временное на вкладку → sessionStorage.
- Секреты → не storage (память/HttpOnly cookie).
- Большие данные → IndexedDB.
Коротко для собеседования
Плюсы storage: простое клиентское хранение, персистентность (localStorage), офлайн, больше cookie (~5–10 МБ), не шлётся на сервер. Минусы: уязвимость к XSS (не для токенов), только строки (JSON), синхронный (блокирует на больших объёмах), лимиты, нет реактивности. Для настроек/черновиков — да, для секретов — нет, для больших данных — IndexedDB.