为什么clearInterval不清除我的间隔?

时间:2019-06-24 12:14:37

标签: javascript

所以我使用的是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;
}

0 个答案:

没有答案