Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: localstorage, indexeddb, sessionstorage, dom, cookies, browser

Какие есть хранилища в браузере и чем они отличаются?

Этот вопрос проверяет знание различных механизмов хранения данных в браузерах. Понимание различий между этими хранилищами важно для эффективного управления данными в веб-приложениях.

Короткий ответ

В браузере доступны несколько механизмов хранения данных: localStorage, sessionStorage, IndexedDB и Cookies. localStorage и sessionStorage предназначены для хранения ключ-значение пар, но localStorage сохраняет данные на неограниченное время, тогда как sessionStorage очищается при закрытии вкладки. IndexedDB — это более сложное хранилище для хранения значительных объемов структурированных данных, а Cookies используются для хранения небольших объемов данных и передачи их на сервер с каждым запросом.

Длинный ответ

В браузерах существуют несколько методов хранения данных, каждый из которых имеет свои особенности и применение:

localStorage:

  • Хранит данные в формате ключ-значение и доступен для всех вкладок и окон того же происхождения (origin).

  • Данные сохраняются даже после закрытия вкладки или браузера и доступны, пока пользователь не удалит их вручную или через код.

  • Максимальный размер данных обычно составляет около 5-10 МБ.

    localStorage.setItem('key', 'value'); 
    const value = localStorage.getItem('key');

sessionStorage:

  • Похож на localStorage, но данные хранятся только в пределах текущей сессии. Это означает, что данные доступны только в текущей вкладке и - будут удалены при ее закрытии.

  • Размер данных также около 5-10 МБ.

    sessionStorage.setItem('key', 'value'); 
    const value = sessionStorage.getItem('key');

IndexedDB:

  • Более сложное и мощное хранилище для хранения больших объемов структурированных данных. Поддерживает транзакции, индексы и запросы.

  • Подходит для сложных веб-приложений, требующих хранения больших объемов данных.

  • Работает асинхронно, что предотвращает блокировку интерфейса.

    const request = indexedDB.open('myDatabase', 1); 
    request.onsuccess = function(event) {
    	const db = event.target.result;    // Дальнейшие операции с базой данных 
    };

Cookies:

  • Используются для хранения небольших объемов данных, которые могут быть отправлены на сервер с каждым HTTP-запросом. Обладают сроком действия, который можно задать.

  • Чаще всего применяются для хранения информации о сеансе пользователя и аутентификации.

  • Максимальный размер — около 4 КБ на cookie.

    document.cookie = "key=value; expires=Fri, 31 Dec 9999 23:59:59 GMT";

Сравнение:

  • localStorage и sessionStorage идеально подходят для простого хранения данных.

  • IndexedDB необходим для работы с большими объемами структурированных данных.

  • Cookies используются для передачи информации между клиентом и сервером, но имеют ограничения по размеру.

Понимание этих различных методов хранения данных поможет разработчикам эффективно управлять пользовательскими данными в веб-приложениях.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#localstorage

#indexeddb

#sessionstorage

#dom

#cookies

#browser

Подпишись на React Developer в телеграм