Application web monopage
# Application web monopage

Une application web monopage (en anglais single-page application ou SPA) est une application web accessible via une page web unique. Le but est d'éviter le chargement d'une nouvelle page à chaque action demandée, et de fluidifier ainsi l'expérience utilisateur : la quantité de données à télécharger est réduite et le navigateur web, au lieu de devoir réinitialiser toute la page, n'a qu'une partie à mettre à jour.

Le terme a été introduit par Steve Yen en 2005.

## Approches techniques

### Stockage de ressources

Les ressources (contenu, images, styles et scripts) nécessaires au fonctionnement de l'application peuvent être :

* soit chargés dès l'ouverture de l'application (comme cela est fait par le concours Castor informatique français) ;
* soit récupérés dynamiquement au besoin, généralement en fonction des actions de l'utilisateur (comme sur Wikipédia en version mobile, qui ne charge les images qu'au moment où elles sont censées apparaitre à l'écran).

Le fruit de l'application peut également être géré de deux manières :

* il peut être placé dans le stockage web local, c'est-à-dire dans l'espace disque de l'utilisateur (dans ce cas, il se peut que l'application fonctionne entièrement avec simplement des fichiers locaux, sans serveur web) ;
* il peut également être envoyé à un serveur web (habituellement via le protocole HTTP), généralement celui qui héberge l'application.

TiddlyWiki est un exemple d'application web monopage qui permet de créer un journal personnel au format HTML. Cette application peut fonctionner en local et sauvegarder vos modifications en ligne grâce à des modules d'extension sur GitHub ou Dropbox par exemple.

### Bibliothèques JavaScript

De nombreuses bibliothèques JavaScript, et notamment des bibliothèques libres, sont spécialisées dans la création d'applications web monopages, entre autres : AngularJS, Ember.js, React, Vue.js et Svelte.

