Le compteur de la section 2 revient à zéro quand on recharge la page
Exercice de TD · niveau 2 · NSI (première), chapitre 10 — Interagir sur le Web · Événements et état de la page
Énoncé
Le compteur de la section 2 revient à zéro quand on recharge la page. Où est stockée sa valeur ? Que faudrait-il pour qu'elle survive ?
Corrigé
Où est la valeur. Dans la variable compteur du programme JavaScript, c'est-à-dire dans la mémoire de l'onglet, sur votre machine. Le serveur ne la connaît pas : depuis l'envoi de la page, aucune requête n'a été émise. Recharger la page relance le script depuis le début, et let compteur = 0; est réexécutée.
Pour qu'elle survive, quatre possibilités, de la plus locale à la plus universelle :
| Où ranger | Ce qui survit | Ce qui ne survit pas |
|---|---|---|
| variable JavaScript | rien | le rechargement |
| `localStorage` | le rechargement, la fermeture du navigateur | un autre appareil, un autre navigateur |
| cookie | idem, et la valeur repart au serveur à chaque requête | un autre appareil |
| base de données du serveur | tout, dès qu'on se reconnecte | l'anonymat |
Pour un simple compteur de démonstration, localStorage suffit et n'engage rien. Pour un score que l'élève doit retrouver au CDI sur un autre poste, il faut le serveur — et donc un compte, donc une identification.
Ce que révèle la question : « où est stockée la valeur » et « où s'exécute le code » sont la même question. Tant que rien ne part sur le réseau, tout ce que fait la page est local et éphémère. La persistance a un prix : soit un espace de stockage propre au navigateur, soit un aller-retour vers le serveur.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.