Mitmekordne nupu vajutamine JavaScripti taimeri käivitamiseks
Minu poolt ülal toodud koodil on tegelikult mingi probleem. See probleem ilmneb juhul, kui meie nupule tehakse mitu klõpsu. Sel juhul iga klõps käivitab uue taimeri.
See tähendab, et näiteks kolm nupuvajutust viivad selleni, et käivitatakse kolm taimerit, ja iga neist taimeritest väljastab loenduri väärtuse konsooli. See tähendab, et väärtused muutuvad kolm korda kiiremini!
Kirjeldatud probleemi lahendamiseks tuleb lihtsalt teha nii, et nupu korduv vajutamine ei põhjustaks uue taimeri käivitamist. Näiteks võib peale taimeri käivitamist lahti siduda nupuga seotud klõpsuohjur:
let start = document.querySelector('#start');
start.addEventListener('click', function func() {
let i = 0;
setInterval(function() {
console.log(++i);
}, 1000);
this.removeEventListener('click', func); // sidume ohjuri lahti
});
Võtke oma eelmise ülesande lahendus. Kontrollige, et mitmekordne nupu vajutamine põhjustab loenduse kiirenemise. Parandage see probleem.