ik probeer het project van iemand anders te ontrafelen, waarin op veel verschillende plaatsen setInterval met dezelfde naam wordt aangeroepen. Het lijkt er op dat die intervals niet altijd netjes gecleared worden. ik even een testje gebouwd:
ik had verwacht dat het voor de 2e keer definieren van de setInterval de 1e automatisch zou clearen, maar dat gebeurt niet. bovenstaande code tracet dus zowel function1 als function2. wanneer ik clearInterval(timer) toevoeg, wordt de laatst gedefinieerde setInterval gecleared. het eerste interval is niet meer te clearen, ook niet door nog een keer clearInterval(timer) toe te voegen. Een oplossing zou zijn om telkens voor het definieren van een setInterval de interval te clearen, of weet iemand anders een methode om meerdere intervals met de zelfde naam te clearen? En kan iemand me uitleggen waarom de tweede definitie van setInterval de eerste niet cleart?
code:
1
2
3
4
5
6
7
8
| f1 = function() {
trace ("function1");
}
f2 = function() {
trace("function2");
}
timer = setInterval(f1, 10);
timer = setInterval(f2, 10); |
ik had verwacht dat het voor de 2e keer definieren van de setInterval de 1e automatisch zou clearen, maar dat gebeurt niet. bovenstaande code tracet dus zowel function1 als function2. wanneer ik clearInterval(timer) toevoeg, wordt de laatst gedefinieerde setInterval gecleared. het eerste interval is niet meer te clearen, ook niet door nog een keer clearInterval(timer) toe te voegen. Een oplossing zou zijn om telkens voor het definieren van een setInterval de interval te clearen, of weet iemand anders een methode om meerdere intervals met de zelfde naam te clearen? En kan iemand me uitleggen waarom de tweede definitie van setInterval de eerste niet cleart?