所以我正在使用Ruby on Rails创建一个网站,并且页面上有一个计时器。 计时器从5变为0,然后开始游戏。但是,如果您在计时器结束之前返回上一页,然后再次启动计时器,则两个计时器都将存在,并且计时器将以两倍的速度下降。
因此,我需要在返回上一页时销毁我的计时器,但是使用unload事件不起作用,因为返回上一页时该页面不会卸载。是否有“回程”事件或我可以使用的类似事件?
这是我的计时器:
var timeleft = 6;
var gameTimer = setInterval(function(){
timeleft--;
afficherChaine("Le jeu va commencer dans " + timeleft + " secondes !"); //afficherChaine just prints something for the user
if(timeleft <= 0){
clearInterval(gameTimer);
jouer();
}
},1000);
我尝试过,但是没有用:
window.onpopstate = function(event){
clearInterval(gameTimer);
}
编辑:我试图做gameTimerID = null;
,以防万一,但是它什么都没有改变。看起来计时器不会消失。我做错了吗?
答案 0 :(得分:0)
尝试onpopstate
。如A popstate event is dispatched to the window each time the active history entry changes between two history entries for the same document
所述。 https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate
答案 1 :(得分:0)
铁路用户涡轮链接加载页面。
我建议使用jquery-rails
尝试使用
$(document).on("turbolinks:before-cache", function() {
clearInterval(gameTimer);
});