Une application de révision garde le nombre de cartes déjà revues
Exercice supplémentaire · niveau 3 (difficile) · NSI (première), chapitre 10 — Interagir sur le Web · Ce que la page fait toute seule
Énoncé
Une application de révision garde le nombre de cartes déjà revues. Quatre endroits sont possibles pour cette valeur : une variable JavaScript, le localStorage du navigateur, un cookie, une base de données côté serveur.
- Pour chacun : la valeur survit-elle au rechargement ? À la fermeture du navigateur ? À un changement d'appareil ? Est-elle envoyée au serveur ?
- Un élève révise au lycée le matin et chez lui le soir, sur deux machines. Quel choix, et que faut-il en plus ?
- Pourquoi ne pas tout mettre dans des cookies, puisqu'ils survivent aussi ?
Corrigé
1.
| Emplacement | Rechargement | Fermeture | Autre appareil | Envoyé au serveur |
|---|---|---|---|---|
| variable JavaScript | non | non | non | non |
| `localStorage` | oui | oui | non | non |
| cookie | oui | selon l'expiration | non | à chaque requête |
| base du serveur | oui | oui | oui | elle y est déjà |
Le localStorage n'est jamais transmis de lui-même : il faut du code qui le lise et l'envoie.
2. Seule la base côté serveur traverse le changement de machine. Mais elle exige de savoir qui révise : il faut donc un compte et une connexion, donc un cookie de session pour relier les requêtes. Le choix complet est donc « base de données plus cookie de session » — et il a un coût que les trois autres n'ont pas : le site sait désormais qui a révisé quoi et quand.
3. Parce qu'un cookie repart au serveur à chaque requête, y compris pour chercher une image ou une feuille de style. Y ranger des données de travail, c'est les faire voyager des centaines de fois sans raison : cela ralentit le site et expose inutilement. Les cookies sont limités à quelques kilo-octets, et cette limite est un garde-fou plus qu'une gêne.
Ce qui distingue vraiment les quatre : ce n'est pas la durée de vie, c'est qui peut lire. La variable et le localStorage restent chez l'utilisateur ; le cookie est partagé avec le serveur à chaque requête ; la base appartient au serveur seul. Choisir un emplacement, c'est choisir qui sait.
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.