Javascript 在3se之后执行函数

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秒钟后重新加载页面而

我想在我们访问页面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本地存储
localStorage one是最简单的:

var t = setTimeout (function () {
  if (localStorage.dontReload && JSON.parse(localStorage.dontReload)) { return }
  window.location.reload();
  localStorage.dontReload = true;
}, 3 * 1000);
关于localStorage需要记住的事项:

  • 它只适用于新的相对较新的浏览器(超过2年的东西) ago很可能会有问题,但在现代社会这不是问题 浏览器)
  • 它仅以字符串格式保存值
  • 它只保存当前域上的值,因此这些值将是您所在页面的本地值:)

这样做有什么意义?