Vairākkārtīga pogas nospiešana, lai palaistu taimeri JavaScript
Iepriekš minētajā kodā patiesībā ir zināma problēma. Šī problēma parādās tad, ja uz mūsu pogas tiek veikti vairāki klikšķi. Šajā gadījumā katrs klikšķis izraisīs jauna taimera palaišanu.
Tas nozīmē, ka, piemēram, trīs pogas nospiešanas izraisīs to, ka tiks palaisti trīs taimeri, un katrs no šiem taimeriem izvadīs skaitītāja vērtību konsolē. Tas nozīmē, ka vērtības mainīsies trīs reizes ātrāk!
Lai atrisinātu aprakstīto problēmu, vienkārši jāpanāk, ka atkārtota pogas nospiešana neizraisa jauna taimera palaišanu. Piemēram, pēc taimera starta var noņemt no pogas piesaistīto klikšķa apstrādātāju:
let start = document.querySelector('#start');
start.addEventListener('click', function func() {
let i = 0;
setInterval(function() {
console.log(++i);
}, 1000);
this.removeEventListener('click', func); // noņemam apstrādātāju
});
Paņemiet savu iepriekšējā uzdevuma risinājumu. Pārbaudiet, vai vairākkārtīga pogas nospiešana izraisa skaitīšanas paātrināšanos. Izlabojiet šo problēmu.