0Pricing
HTML Academy · Урок

localStorage и sessionStorage

Разберитесь со сроком хранения и областью действия каждого типа хранилища

«localStorage и sessionStorage» — бесплатный урок HTML Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения HTML Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс HTML Academy содержит 4 уроков всего.

Обзор API веб-хранилища

API веб-хранилища предоставляет два клиентских хранилища пар «ключ — значение»: localStorage (сохраняется между сеансами) и sessionStorage (очищается при закрытии вкладки). Оба хранилища содержат строковые значения и синхронно доступны через JavaScript в пределах одного источника.

Сохранение данных в localStorage

Данные в localStorage сохраняются, пока явно не будут удалены кодом, пользователем или в результате удаления данных браузера. Они переживают перезапуск браузера, обновление страницы и закрытие вкладки. Обычно для каждого источника доступно от 5 до 10 MB в зависимости от браузера.

Область действия sessionStorage

sessionStorage относится к текущей вкладке браузера и текущему сеансу. Данные сохраняются при обновлении страниц в той же вкладке, но удаляются при её закрытии. Две вкладки одного сайта имеют отдельные изолированные хранилища sessionStorage — они не обмениваются данными.

Сходство API

Оба хранилища используют один и тот же API: setItem(key, value), getItem(key), removeItem(key), clear() и свойство length. Один и тот же код работает с обоими хранилищами — достаточно заменить localStorage на sessionStorage или наоборот.

Как выбрать хранилище

Используйте localStorage для пользовательских настроек (темы, языка), кэшированных ответов API и функции запоминания пользователя. Используйте sessionStorage для состояния шагов мастера или формы, временной корзины покупок до оформления заказа и данных, которые не должны сохраняться между посещениями по соображениям конфиденциальности.

Ограничение одним источником

Оба хранилища строго привязаны к источнику (протоколу, хосту и порту). https://example.com не может прочитать данные localStorage, сохранённые сайтом http://example.com. Это граница безопасности — поддомены также являются отдельными источниками, если не изменить document.domain (что устарело).

Ёмкость хранилища

В большинстве браузеров для каждого источника доступно около 5 MB. Превышение лимита вызывает ошибку QuotaExceededError. Для хранения больших объёмов данных требуется IndexedDB, поддерживающий гигабайты структурированных данных. Веб-хранилище предназначено для небольших пар «ключ — значение», а не для двоичных объектов или больших наборов данных.

Синхронная работа

Чтение и запись в веб-хранилище выполняются синхронно и блокируют главный поток. При работе с большими объёмами это может вызывать подвисания. Для частых операций с большими объёмами данных предпочитайте IndexedDB. Храните в веб-хранилище небольшие значения и обращайтесь к нему нечасто, чтобы избежать проблем с производительностью.

Шаблон сериализации

Веб-хранилище сохраняет только строки. Сериализуйте объекты с помощью JSON.stringify(); десериализуйте их с помощью JSON.parse(). Обрабатывайте ошибки разбора: try { return JSON.parse(stored) } catch { return defaultValue }. Повреждённые значения или значения не в формате JSON в хранилище вызывают ошибки разбора.

Хранилище в приватном режиме и режиме инкогнито

localStorage в приватном режиме или режиме инкогнито очищается после закрытия всех приватных окон — фактически ведёт себя как sessionStorage. Код, использующий localStorage для состояния аутентификации, должен обрабатывать ситуацию, когда localStorage неожиданно удаляется.

Ограничения для сторонних сайтов

Браузеры всё чаще ограничивают доступ сторонних сайтов к хранилищу. Встроенный фрейм со стороннего сайта third-party.com на основном сайте first-party.com не может получить доступ к localStorage сайта third-party.com. ITP в Safari и усиленная защита от отслеживания в Firefox разделяют хранилище на изолированные области — использование хранилища основным сайтом это не затрагивает.

Проверка знаний

Когда очищается sessionStorage?

Итоги

localStorage сохраняется неограниченно долго, пока его программно или вручную не очистит пользователь; sessionStorage очищается при закрытии вкладки. Оба хранилища привязаны к источнику, работают синхронно, содержат строковые пары «ключ — значение» и имеют ёмкость около 5 MB. Используйте localStorage для настроек и постоянного состояния, а sessionStorage — для временного состояния, ограниченного сеансом и не сохраняющегося после закрытия вкладки.

Часто задаваемые вопросы

Урок «localStorage и sessionStorage» бесплатный?

Да — полный текст урока «localStorage и sessionStorage» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс HTML Academy, подпишись на CoddyKit PRO. Курс HTML Academy содержит 4 уроков всего.

Чему я научусь в уроке «localStorage и sessionStorage»?

Разберитесь со сроком хранения и областью действия каждого типа хранилища Ты практикуешь HTML Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать HTML Academy?

Предыдущий опыт не требуется. HTML Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «localStorage и sessionStorage»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке HTML Academy?

Да. Каждый урок HTML Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. localStorage и sessionStorage
  2. Получение, установка и удаление элементов
  3. Отслеживание событий хранилища
  4. Безопасность: что никогда не следует хранить в хранилище
← Назад к HTML Academy