perf(slideshow): cache global settings to cut /state DB reads (PR #646 review)
Each /state poll fired ~10 getAppSetting reads to resolve the watermark/fit; a leaked link x N tabs amplified that linearly (review concern 2). Add a 5s-TTL cached bundle (utils/slideshowGlobals) for the global slideshow_* + branding-logo settings, invalidated on PUT /admin/settings/slideshow so admin live-edit stays instant. slideshowSettings now does ~2 reads per poll (event row + photo count) on a cache hit. Also documents the frontend optimistic-default nit.
This commit is contained in:
@@ -23,6 +23,9 @@ import {
|
||||
} from '../../services/slideshow.service';
|
||||
import { WatermarkSourcePicker } from './WatermarkSourcePicker';
|
||||
|
||||
// Optimistic form state shown until the GET resolves; mirrors the backend
|
||||
// defaults so the controls don't flicker on load (backend is the source of
|
||||
// truth — these are just the pre-fetch placeholder).
|
||||
const DEFAULTS: SlideshowGlobalDefaults = {
|
||||
slideshow_fit: 'cover',
|
||||
slideshow_interval_ms: 5000,
|
||||
|
||||
Reference in New Issue
Block a user