Click multipli sul pulsante per avviare il timer in JavaScript
Il codice che ho fornito sopra, in realtà ha un certo problema. Questo problema si manifesta nel caso in cui sul nostro pulsante vengano effettuati più click. In questo caso ogni click porterà all'avvio di un nuovo timer.
Cioè, per esempio, tre pressioni sul pulsante porteranno al fatto che verranno avviati tre timer, e ognuno di questi timer stamperà il valore del contatore nella console. Ciò significa che i valori cambieranno tre volte più velocemente!
Per risolvere il problema descritto, è necessario semplicemente fare in modo che una pressione ripetuta sul pulsante non porti a un nuovo avvio del timer. Ad esempio, è possibile, dopo l'avvio del timer, scollegare dal pulsante il gestore di click associato:
let start = document.querySelector('#start');
start.addEventListener('click', function func() {
let i = 0;
setInterval(function() {
console.log(++i);
}, 1000);
this.removeEventListener('click', func); // scolleghiamo il gestore
});
Prendete la vostra soluzione del compito precedente. Verificate che le pressioni multiple sul pulsante portino a un conteggio accelerato. Correggete questo problema.