---
title: Браузерные API
questionDates:
  q-transfer-0443: '2026-10-01'
  q-transfer-0444: '2026-10-01'
seo:
  description: >-
    Тема «Браузерные API» для собеседования React Developer. Когда IndexedDB
    лучше localStorage? Как синхронизировать состояние между вкладками браузера?
  title: Браузерные API — React Developer
---

[Все темы React Developer](/prep/react-developer)

## Когда IndexedDB лучше localStorage? [#q-transfer-0443]

IndexedDB выбирают для заметного объёма структурированных данных, поиска по индексам, транзакционных изменений нескольких записей и offline-кеша. Она асинхронна, хранит object stores и indexes, а изменение схемы выполняется в version upgrade. `localStorage` проще для нескольких небольших строковых настроек, но его API синхронный и блокирует main thread. Квоты и удаление данных зависят от браузера и политики хранения, поэтому IndexedDB не является гарантированным вечным диском. Оба хранилища доступны клиентскому коду origin и не подходят для секретов, которые XSS не должна прочитать.

:::note[Ссылки для изучения]

1. [IndexedDB: структурированные данные, индексы и транзакции](https://developer.mozilla.org/ru/docs/Web/API/IndexedDB_API)
   :::

---

## Как синхронизировать состояние между вкладками браузера? [#q-transfer-0444]

`BroadcastChannel` позволяет вкладкам одного origin обмениваться сообщениями напрямую и подходит для logout, тем и уведомлений. Событие `storage` работает через изменение `localStorage` и приходит в другие документы origin, но не в тот, который сделал запись. `SharedWorker` может держать общий процесс и соединение там, где поддерживается. Сообщения должны быть идемпотентными и содержать версию или время, потому что вкладка может открыться позже и пропустить событие; исходное состояние всё равно читают из хранилища или сервера. Для разных устройств и браузерных профилей нужен серверный WebSocket, SSE или polling.

:::note[Ссылки для изучения]

1. [BroadcastChannel: сообщения между вкладками](https://developer.mozilla.org/ru/docs/Web/API/BroadcastChannel)
   :::
