# Личные данные

То, что видит только сам человек — его настройки, черновик, прогресс в тренажёре, — хранится в обычном `localStorage`:

```js
const settings = JSON.parse(localStorage.getItem("settings") ?? "{}");
settings.sound = false;
localStorage.setItem("settings", JSON.stringify(settings));
```

Писать и читать можно сразу, без ожидания: данные уже в странице, когда начинает работать её первый скрипт.

## Где хранится

- **У Pairx, а не в телефоне.** Песочница закрывается вместе с приложением, поэтому Pairx сохраняет `localStorage` на своём сервере и отдаёт при следующем открытии — на любом устройстве человека.
- **Отдельно для каждого экземпляра.** У одного приложения в двух чатах — два разных `localStorage`; в личном режиме и в предпросмотре — свои.
- **Только этому человеку.** Ни автор приложения, ни другие участники чата чужой `localStorage` не видят.

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

## Сколько

До 256 КиБ на человека в одном экземпляре — всё содержимое вместе, как JSON в UTF-8: кириллица занимает 2 байта на букву. Только строки, как в любом `localStorage`. При превышении `setItem` бросает `QuotaExceededError`.

`sessionStorage` тоже есть, но живёт только пока приложение открыто.

## Чего не делать

- **Не храните здесь общее.** Другие участники этих данных не увидят — для общего есть [хранилища чата](https://dev.pairx.org/guides/storage).
- **Не храните секреты.** `localStorage` — удобство, а не защита: любой код приложения, включая его следующие версии, читает его целиком.
- **Не рассчитывайте на IndexedDB и cookies.** IndexedDB на iPhone нет, а cookies песочница стирает, когда приложение закрывается.

## Удаление

Человек удаляет свои данные в экземпляре из меню приложения — вместе с `localStorage` удаляются и его записи в общих хранилищах (см. [Общие данные](https://dev.pairx.org/guides/storage#udalenie-dannyh)).
