В чем ключевые различия между Session Storage и Local Storage в веб-разработке?

«В чем ключевые различия между Session Storage и Local Storage в веб-разработке?» — вопрос из категории Веб-тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Session Storage и Local Storage — это механизмы клиентского хранения данных в браузере, работающие по принципу «ключ-значение». Их основное различие заключается в времени жизни данных и области видимости.

Session Storage

  • Время жизни: Данные сохраняются только на время сессии браузера и удаляются при закрытии вкладки.
  • Область видимости: Данные доступны только в контексте той вкладки, где они были созданы.
  • Лимит: Обычно около 5 МБ на домен.
  • Использование: Для временных данных, например, ввода формы в течение одной сессии.

Local Storage

  • Время жизни: Данные не имеют срока действия и сохраняются до явного удаления через JS или очистки браузера.
  • Область видимости: Данные доступны для всех вкладок и окон, открытых на одном домене.
  • Лимит: Обычно около 5-10 МБ на домен.
  • Использование: Для постоянных настроек пользователя (тема, язык) или кэширования.

Пример использования:

// Local Storage — для постоянных настроек
localStorage.setItem('appTheme', 'dark');
const savedTheme = localStorage.getItem('appTheme'); // 'dark'

// Session Storage — для временных данных сессии
sessionStorage.setItem('formDraft', JSON.stringify({ name: 'Alice' }));
const draft = JSON.parse(sessionStorage.getItem('formDraft')); // {name: 'Alice'}

Важно: Оба хранилища синхронны и работают только со строками. Для хранения объектов используйте JSON.stringify() и JSON.parse().