所以我使用的是Javascript间隔,由于某种原因,清除间隔不起作用。仅当我在带有计时器的页面上,按“后退”按钮(返回上一页),然后再次进入该错误时,才会发生此错误。
这是我的计时器:
var timeleft = 6;
var gameTimer = setInterval(function(){
timeleft--;
afficherChaine("Le jeu va commencer dans " + timeleft + " secondes !"); //Just prints something at the screen for the user
console.log("First");
if(timeleft <= 0){
clearInterval(gameTimer);
console.log("Second");
jouer();
}
},1000);
当我使用“后退”按钮返回上一页,然后返回此处时,两个计时器都将运行,并且计时器将永远不会停止,但是jouer()
将执行。但是计时器不会停止。
当我不触发错误时,这是我的日志:
First
Second
然后我触发它:
First
Second
First
Second
First
Second
First
Second
...
它永远不会停止
编辑:显然这是题外话,我真的不明白为什么。我想我需要说说代码应该做什么。
该代码有效,但是返回上一页并再次执行此操作会创建一个带有2个计时器的错误,即使我之前已清除该计时器也是如此。不应该那样做。
编辑(再次):首先,感谢您的帮助。然后,这是一段创建该错误的代码:
var timeleft = 6;
var gameTimer = setInterval(function(){
timeleft--;
afficherChaine("Le jeu va commencer dans " + timeleft + " secondes !"); //Just prints something at the screen for the user
console.log("First");
if(timeleft <= 0){
clearInterval(gameTimer);
console.log("Second");
}
},1000);
我尝试不调用方法jouer(),但该错误仍然发生。另外,该错误仅在您按下“后退”按钮(或其名称)并再次出现在此页面上时出现
还有afficherChaine:
function afficherChaine(message){
affichageChaine.textContent = message;
}