Bonjour, je viens de nouveau demander de l'aide, malgré mes quelques mois de pratique déjà avec le javascript... ce que je demande ne semble pas compliqué mais tout ne me semble pas encore évident.
Lorsque j'actualise le navigateur, les données du formulaire doivent toujours être présent (nom, prénom), ainsi que le chrono qui continue de tourner.
Je dois garder en mémoire ces éléments tant que le navigateur est ouvert (donc même après un refresh. Donc lorsque je refresh le navigateur je dois toujours voir ceci (c'est un exemple)
- nom : Doe
- Prénom :John
- Le temps restant avant la fin de votre réservation est de : xx minutes xx secondes.
Ma class Chrono :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 class Chrono { constructor(min, sec, time, storage) { this.min = min; this.sec = sec; this.time = time; this.stopWatchElt = Dom.stopWatchElement; this.storage = storage; } init() { this.stopWatchElt.innerHTML = this.min + " : " + this.sec; this.timer = setInterval(this.tick.bind(this), this.time); } clearMe() { console.log('clear') clearInterval(this.timer); Dom.textChronoElement.style.display = 'none'; Dom.textChronoAnnulerElement.style.display = 'block'; Dom.cancelElement.style.display = 'none'; if (Dom.cancelElement.style.display = 'none') { this.clearStorage(); } } tick() { this.sec--; if (this.sec == 0) { this.min--; this.sec = 59; } else if (this.min === 0 && this.sec === 1) { this.clearMe(); } this.stopWatchElt.innerHTML = this.min + " : " + this.sec; } };
Ma classe Storage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 class Storage { constructor(station, storage) { this.station = station; this.localStorage; this.storage = storage; } dataRecord() { this.storage = sessionStorage.setItem("infos : ", JSON.stringify(this.station)); //La méthode JSON.stringify est une méthode JS qui convertit un objet en chaîne de caractère this.storage = sessionStorage.setItem('chrono : ' /*Ma méthode this.init qui déclenche le chrono */ ); this.localStorage = localStorage.setItem("nom et prénom: ", Dom.firstNameElement.value + '' + Dom.surnameElement.value + ''); } clearStorage() { this.sessionStorage.clear(); } }
Ma class Reservation
J'ai réussi à stocker les données du navigateur dans le cache avec sessionStorage, mais dans la page elle même je n'ai pas trouvé comment faire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 class Reservation { constructor(station, storage) { this.station = station; this.status = Dom.textChronoElement; this.storage = storage; } storeDatas() { this.storage = new Storage(this.station); this.storage.dataRecord(); } startReservation() { console.log('chrono'); const myChrono = new Chrono(19, 59, 1000, this.storage); myChrono.init(); }; }
Je vous remercie par avance de votre aide![]()
Partager