28 lines
1012 B
Markdown
28 lines
1012 B
Markdown
---
|
||
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
|