Lorsque le client (navigateur) veut envoyer un message au serveur
Lorsque le serveur (navigateur) veut envoyer un message au client
Lorsqu'on peut "persister" des données.
Je veux persister les données suivantes:
const data = [
{name: "didier", note: "76", course: "420-301-ah"},
{name: "justyn", note: "68", course: "420-258-ah"},
{name: "gilles", note: "98", course: "420-854-ah"},
]
On va écrire les donnée en string...
const data = `
[
{name: "didier", note: "76", course: "420-301-ah"},
{name: "justyn", note: "68", course: "420-258-ah"},
{name: "gilles", note: "98", course: "420-854-ah"},
]
`;
Il s'agit d'un petit object (clé/valeur, string/string) qui est persisté entre les rafraichement.
window.localStorage.setItem("nom", "didier");
// refresh le navigateur
console.log(window.localStorage.getItem("nom"));
window.localStorage.setItem(key, value) associe value à key de manière permanantewindow.localStorage.getItem(key) retourne la valeur associée à keywindow.localStorage.removeItem(key) enlève la valeur associée à keywindow.localStorage.clear() enlève toutes les valeurshttps://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
Le localstorage est associé au domaine. https://example.com/foo.html partagera le même localstorage que https://example.com/toto.html
C'est tout
C'est le standard de sérialisation de données.
C'est un sous ensemble du vieux javascript
C'est "humain readable"
C'est relativement rapide à lire pour un ordinateur
{
"menu": {
"id": "file",
"value": "File",
"readable": false,
"priority": 18,
"popup": {
"menuitem": [
{ "value": "New", "onclick": "CreateNewDoc()" },
{ "value": "Close", "onclick": "CloseDoc()" }
]
}
}
}
flowchart LR A["Web Browser"]<-- JSON -->B["Serveur"] C["Machin"]<-- JSON -->D["Serveur"] E["Machin X"]<-- JSON -->F["Machin Y"]
.json, j'en ai 28 598{
"message": "ceci est un bon json"
}
"{
"message": "ceci est un bon json"
}
"{
"message": "ceci est un bon json"
"timestamp": 176326534,
"longeur": 8973.32657
}
{
"message": "ceci est un bon json"
"timestamp": 176326534,
"longeur": 8973.32657,
"isProblem": false
}
true ou false)
{
"message": "ceci est un bon json"
"timestamp": 176326534,
"longeur": 8973.32657,
"isProblem": false,
"problem": null
}
null)
{
"message": "ceci est un bon json"
"timestamp": 176326534,
"longeur": 8973.32657,
"isProblem": false,
"problem": null,
"people": ["steve", "bob", "stéphan"]
}
Chrome JSON Viewer un plugin pour linter tout siteweb qui montre du JSON
JSON Lint un site web qui lint du json
jq un outil command line qui travaille avec le json
const data = {
message: "ceci est un bon json"
timestamp: 176326534,
longeur: 8973.32657,
isProblem: false,
problem: null,
people: ['steve', 'bob', "stéphan", ],
}
const json = JSON.stringify(data)
console.log(json)
const parserData = JSON.parse(json);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON
const data = {
message: "ceci est un bon json"
timestamp: 176326534,
longeur: 8973.32657,
isProblem: false,
problem: null,
people: ['steve', 'bob', "stéphan", ],
}
const json = JSON.stringify(data)
localStorage.setItem("data", json);
refresh!
const data = JSON.parse(localStorage.getItem("data"));
console.log(data)
Écrire une représentation JSON du dernier disque de Tailor Swift.
Faire une page web comme celle-ci mais où le résultat est persisté dans localstorage. C'est à dire qu'il faut que la liste reste la même lorsque l'usagé rafraichie son navigateur.