50 lines
4.0 KiB
Markdown
50 lines
4.0 KiB
Markdown
# Ожидание, ошибки и восстановление интерфейса
|
|
|
|
Интерфейс различает ожидание данных, известную ошибку запроса и непойманную
|
|
ошибку отображения маршрута. Эти состояния требуют разных действий и
|
|
не подменяют друг друга.
|
|
|
|
## Ожидание и доступные данные
|
|
|
|
При первой загрузке без результата structural skeleton показывает
|
|
расположение ожидаемых блоков. При частичной загрузке он занимает только
|
|
незагруженную область. Placeholders не содержат правдоподобных финансовых
|
|
данных, не становятся действиями и не получают клавиатурный фокус; область
|
|
ожидания обозначается как занятая.
|
|
|
|
При восстановлении сессии SPA показывает нейтральный skeleton каркаса,
|
|
пока неизвестно, доступен public или protected маршрут. При загрузке
|
|
отложенного маршрута уже доступный каркас остаётся видимым.
|
|
|
|
Фоновое обновление и действие пользователя сохраняют видимые данные или
|
|
элемент управления с компактной индикацией процесса. В частности,
|
|
[клиентский снимок](data-freshness.md#клиентский-и-серверный-снимки) счетов или
|
|
портфеля остаётся доступным после ошибки refetch; сообщение и повтор
|
|
относятся к обновлению, а не к отсутствию инвестиций.
|
|
|
|
## Известная ошибка сценария
|
|
|
|
Ошибки счетов, портфеля и подключения T-Bank остаются локальными: рядом
|
|
с затронутыми данными доступны предусмотренные сценарием retry и navigation
|
|
actions. Устаревший серверный Portfolio Snapshot показывает сохранённый
|
|
портфель с предупреждением. Он не превращается в глобальный fallback.
|
|
Ошибка источника не означает нулевой баланс или отсутствие операций.
|
|
|
|
## Непойманная ошибка маршрута
|
|
|
|
Непойманная runtime-ошибка при отображении public или protected route
|
|
заменяет его содержимое нейтральным fallback без технических деталей.
|
|
Пользователь может перейти к `/accounts` при активной сессии или к `/login`
|
|
без неё. Переход на другой маршрут сбрасывает это состояние; если новый
|
|
маршрут отображается успешно, пользователь продолжает работу.
|
|
|
|
Общий fallback восстанавливает навигацию, но не обещает устранить причину
|
|
ошибки. HTTP-коды и безопасная форма серверной ошибки находятся в
|
|
[HTTP API](../http-api.md), восстановление сессии — в
|
|
[аутентификации](../../domains/authentication/overview.md).
|
|
|
|
Согласованное поведение раскрыто в workspace-спецификациях
|
|
[UI resilience](../../../specs/openspec/specs/frontend-ui-resilience/spec.md),
|
|
[loading presentation](../../../specs/openspec/specs/frontend-loading-presentation/spec.md)
|
|
и [data resilience](../../../specs/openspec/specs/frontend-data-resilience/spec.md).
|