Javascript 在3se之后执行函数
我想在我们访问页面3秒钟后重新加载页面,不重复 我试过使用Javascript 在3se之后执行函数,javascript,jquery,Javascript,Jquery,我想在我们访问页面3秒钟后重新加载页面,不重复 我试过使用 var t; t=setTimeout(function(){ window.location.reload(); },3000); 但页面正在持续加载 所以我试着这样做 var t; t=setTimeout(function(){ clearTimeout(t); window.location.reload(); },3000); 此技巧也不起作用 有谁能帮助我在3秒钟后重新加载页面而
var t;
t=setTimeout(function(){
window.location.reload();
},3000);
但页面正在持续加载所以我试着这样做
var t;
t=setTimeout(function(){
clearTimeout(t);
window.location.reload();
},3000);
此技巧也不起作用有谁能帮助我在3秒钟后重新加载页面而不重复这是因为当重新加载页面时,脚本也会重新加载,因此浏览器会再次运行它。一种解决方案是使用cookie
function SetMeow() {
var a = new Date();
a.setTime(a.getTime() + 9999999999999999999);
document.cookie = "Cat=meow;expires="+a.toGMTString();
}
var b = document.cookie.replace(/(?:(?:^|.*;\s*)Cat\s*\=\s*([^;]*).*$)|^.*$/, "$1");
if(b!="meow"){
var t=setTimeout(function(){
SetMeow();
window.location.reload();
},3000);
}
您将需要一个标志,使用本地存储或cookie,并在重新加载页面时进行更改。或者,每次加载页面时都会再次设置新的间隔。嗯,当您刷新页面时,会加载一个全新的页面,因此您实际上无法执行此操作 简而言之,您需要在页面之间保存状态,这可以通过多种方式完成:
- 向某个辅助脚本发送AJAX请求
- 在Cookie中保存状态
- 使用HTML5本地存储
var t = setTimeout (function () {
if (localStorage.dontReload && JSON.parse(localStorage.dontReload)) { return }
window.location.reload();
localStorage.dontReload = true;
}, 3 * 1000);
关于localStorage需要记住的事项:
- 它只适用于新的相对较新的浏览器(超过2年的东西) ago很可能会有问题,但在现代社会这不是问题 浏览器)
- 它仅以字符串格式保存值
- 它只保存当前域上的值,因此这些值将是您所在页面的本地值:)