Adloun

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ù rangerCe qui survitCe qui ne survit pas
variable JavaScriptrienle rechargement
`localStorage`le rechargement, la fermeture du navigateurun autre appareil, un autre navigateur
cookieidem, et la valeur repart au serveur à chaque requêteun autre appareil
base de données du serveurtout, dès qu'on se reconnectel'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.