【发布时间】:2017-07-21 15:43:41
【问题描述】:
我有一个页面链接。加载速度很慢,点击事件我会显示一个进度条并运行一个带有随机文本的定时循环。我用 setInterval 做到这一点。我每 8 秒更改一次文本。
加载完成后,浏览器会显示新页面。 我不清除间隔,因为我认为新页面与上一页没有任何共享。
但是,如果我单击 Firefox 上的上一个按钮,它似乎记得有一个间隔,它会再次运行它。 在 Chrome 中,prevoius 按钮似乎重新加载页面并且没有间隔。 为什么 Firefox 有这种行为?
您可以在此处查看该页面: http://www.demo.tinnservice.com:8090/
我将点击间隔设置为“Ricerca Avanzata”
这是html标签
<a class="linkSlow" data-action="archivio" href="/archivio">Ricerca avanzata</a>
这是javascript代码:
function smokeInTheEyes(element){
$("body").css("position","relative");
$("#wait-overlay").addClass("in");
var frasi=frasiObj[element.data("action")];
var i=0;
setTimeout(function(){$("#frase").text(frasi[i]).show("400");},1000)
var timer=setInterval(function(){
i+=1;
console.log(i);
if(i==frasi.length){i=0;}
$("#frase").hide("400",function(){$("#frase").text(frasi[i]).show("400")});
}, 8000);
}
$(".linkSlow").click(function(e){
smokeInTheEyes($(this));
});
PS:Frasi 是一个包含两个或多个字符串数组的对象。点击标签上的 data-action 属性告诉我使用哪个数组来显示随机文本
【问题讨论】:
-
我会使用
onBeforeUnload监听器。这比捕获click事件更自然,尽管您可能需要更改内容以处理他们单击的按钮。我建议onBeforeUnload的原因是因为我怀疑它会给你带来同样的事件问题。值得一试。 developer.mozilla.org/en-US/docs/Web/Events/beforeunload -
谢谢。我“clearInterval”“onBeforeUnload”。它有效。
标签: javascript firefox setinterval browser-cache clearinterval