Проверяет понимание различий между Session Storage и Local Storage в веб-браузерах, их жизненного цикла и областей применения.
Local Storage и Session Storage — это два механизма веб-хранилища, доступных в браузере. Их главное отличие — время жизни данных и область видимости. Local Storage сохраняет данные бессрочно, даже после закрытия браузера, пока пользователь или сайт не удалит их. Session Storage очищается, как только закрывается вкладка или окно браузера, в котором он был создан.
Local Storage доступен во всех вкладках и окнах, открытых для одного и того же домена. Это значит, что если вы измените данные в одной вкладке, другие вкладки увидят это изменение (при условии, что они слушают событие storage). Session Storage изолирован для каждой вкладки: данные, сохранённые в одной вкладке, недоступны в другой, даже если они открыты на том же сайте.
Представьте, что пользователь заполняет длинную форму. Если вы хотите сохранить черновик, чтобы он не потерялся при случайном обновлении страницы, но не хотите хранить его после закрытия вкладки, используйте Session Storage. Если же нужно запомнить выбор темы оформления навсегда, используйте Local Storage.
// Сохранение в Local Storage
localStorage.setItem('theme', 'dark');
// Чтение из Local Storage
const theme = localStorage.getItem('theme');
// Сохранение в Session Storage
sessionStorage.setItem('draft', 'some text');
// Чтение из Session Storage
const draft = sessionStorage.getItem('draft');
// Удаление
localStorage.removeItem('theme');
sessionStorage.clear();Оба хранилища работают только со строками. Если нужно сохранить объект, его следует сериализовать в JSON с помощью JSON.stringify() и распарсить при чтении. Лимит обычно составляет около 5-10 МБ на домен, но точное значение зависит от браузера. Данные не отправляются на сервер автоматически, они остаются на клиенте.
Выбирайте Local Storage для долгосрочных данных, которые должны переживать перезагрузку браузера, например, настройки пользователя. Используйте Session Storage для временных данных, связанных с текущей вкладкой, таких как состояние формы или одноразовые токены. Понимание этих различий помогает избежать утечек данных и неожиданного поведения при работе с пользовательскими настройками.