Qu'est-ce qu'une Single Page Application (SPA) ?
Une Single Page Application (SPA) est une web app qui charge une seule page HTML et update le contenu dynamiquement via JavaScript pendant que l'utilisateur interagit, sans rechargements complets de page. La navigation entre "pages" se passe côté client.
Les SPAs se sentent snappy et app-like (Gmail, Trello, Notion sont toutes des SPAs). Elles trade-offent deux choses : load initial plus lent et SEO plus difficile.
Comment fonctionnent les SPAs
- Navigateur requête
example.com - Serveur retourne HTML minimal + bundle JS
- Navigateur télécharge + exécute bundle JS
- JS render home view
- Utilisateur click link → JS intercept → update URL + render new view
- Données fetched via API
SPA vs MPA
| Aspect | SPA | MPA |
|---|---|---|
| Navigation page | JS-driven | Serveur retourne HTML complet |
| Load initial | Lent | Rapide |
| Navigation subséquente | Instant | Plus lente |
| SEO out-of-box | Mauvais | Bon |
| Meilleur pour | UIs app-like | Sites contenu |
Frameworks SPA populaires
| Framework | Notes |
|---|---|
| React + React Router | Plus populaire |
| Angular | Framework complet |
| Vue + Vue Router | Approachable |
| Svelte (avec SvelteKit mode SPA) | Framework compile-time |
| Solid | React-like |
| Ember | Convention-heavy |
Pros et cons SPA
| Pros | Cons |
|---|---|
| UX app-like | Premier load lent |
| Navigation subséquente rapide | SEO nécessite travail extra |
| Frontend/backend découplés | Back/forward navigateur besoin handling |
| APIs réutilisables | Erreur JS casse app entière |
Quand utiliser SPA
- Dashboards logged-in.
- Apps real-time.
- UIs très interactives.
- Web apps mobile-like.
Quand NE PAS utiliser SPA
- Sites contenu-lourd.
- Sites nécessitant premier paint instantané.
- Devices target low-spec.
- SEO critique.
Résoudre les problèmes SPA
SEO : SSR ou prerendering
Serveur render HTML pour crawlers.
Load initial : code splitting
const Settings = lazy(() => import('./Settings'));Navigation navigateur : utiliser router
<Route path="/users/:id" element={<UserPage />} />Loading states
Skeleton screens ou spinners.
Best practices SPA
- Code-split agressivement.
- Utiliser router.
- Gérer state explicitement.
- Cacher responses API.
- Montrer loading states.
- Gérer erreurs gracieusement.
- Optimiser taille bundle.
- SSR/prerender si SEO importe.
- Service Workers pour offline.
Pièges SPA courants
- Bundles massifs.
- SEO afterthought.
- Memory leaks.
- Historique navigateur cassé.
- Navigation seulement JS.
- Chaos state management.
- Flicker loading.
FAQ : Single Page Application
SPA ou MPA : lequel est meilleur ?
Dépend.
Les SPAs sont-elles mauvaises pour SEO ?
Par défaut oui ; avec SSR ok.
Google indexe-t-il les SPAs maintenant ?
Googlebot exécute JavaScript, mais plus lent.
Qu'est-ce que PWA vs SPA ?
PWA = SPA + support offline + installable.
Quelle taille devrait avoir un bundle SPA ?
< 200KB JS initial gzippé.
Les SPAs meurent-elles avec le rise de SSR/RSC ?
Non.
Différence entre SPA et CSR ?
CSR est stratégie rendering. SPA est architecture.
Load-testez les APIs backend SPA avec LoadFocus
Les SPAs frappent votre backend dur via XHR. LoadFocus exécute des scripts JMeter et k6 depuis 25+ régions. Inscrivez-vous sur loadfocus.com/signup.
Outils LoadFocus connexes
Mettez ce concept en pratique avec LoadFocus, la plateforme même qui propulse tout ce que vous venez de lire.