Skip to content

Perf: Lite skips heavy refresh for non-selected server tabs (P6)#1118

Merged
erikdarlingdata merged 1 commit into
devfrom
feature/perf-lite-skip-hidden
Jun 12, 2026
Merged

Perf: Lite skips heavy refresh for non-selected server tabs (P6)#1118
erikdarlingdata merged 1 commit into
devfrom
feature/perf-lite-skip-hidden

Conversation

@erikdarlingdata

Copy link
Copy Markdown
Owner

Each open server tab's 60s DispatcherTimer fully refreshed its visible sub-tab — DuckDB queries + chart/grid rebuilds — every tick even when the tab wasn't selected (N open tabs => N query+rebuild batches/min of pure background churn).

Now a non-visible tab skips the sub-tab data refresh on tick, keeps only its alert badge current, marks itself dirty, and does one refresh when it becomes the selected tab again (IsVisibleChanged). Bonus: switching to a tab now shows fresh data instead of stale-until-next-tick.

Build: Lite clean (net10). Validate on a running Lite (tab switching + badge updates).

🤖 Generated with Claude Code

Each open server tab's 60s DispatcherTimer fully refreshed its visible sub-tab —
running DuckDB queries and rebuilding charts/grids — every tick even when the tab
wasn't the selected one (N open tabs => N query+rebuild batches per minute of pure
background churn). Now, on a timer tick, a tab that isn't visible skips the sub-tab
data refresh and only keeps its alert badge current (RefreshAlertCountsAsync), marks
itself dirty, and does one refresh when it becomes the selected tab again
(IsVisibleChanged) — which also means switching to a tab now shows fresh data instead
of stale data until the next tick.

Build: Lite builds clean (net10).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit 6634bed into dev Jun 12, 2026
@erikdarlingdata erikdarlingdata deleted the feature/perf-lite-skip-hidden branch June 12, 2026 04:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant