--- title: Polling Frontend — ETag, Selectors, Cadence --- # Objectif Réduire les rafraîchissements inutiles et le « clignotement » via ETag, selectors mémoïsés et cadence contrôlée. ## Implémentation - ETag/If-None-Match activés dans `src/services/folderApi.ts` - Sélecteurs Reselect: `src/store/selectors.ts` - Limitation de polling: `src/App.tsx` (backoff exponentiel, max 30 itérations) - Pause onglet caché (Page Visibility API) - Mémos: `UploadView.tsx` et `Layout.tsx` (useMemo/React.memo) ## Bonnes pratiques - N’actualiser l’état Redux que si les données changent réellement (comparaison profonde) - Afficher Skeletons pour les documents en traitement - Éviter setState inutiles dans les listes (items mémoïsés) ## Tests à réaliser 1. Vérifier qu’un 304 Not Modified ne déclenche pas de re-render 2. Observer l’absence de clignotement lors de l’arrivée d’un seul nouveau document 3. Valider l’arrêt du polling après 30 tentatives ou à stabilisation