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
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();
    };
}
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...

Je vous remercie par avance de votre aide