如何自动重新加载网页

时间:2016-12-25 15:19:28

标签: javascript for-loop web break

我希望我的网页在第一次打开时重新加载一次。我在我的javascript文件中写了这个函数...

var i;
$(document).ready(function(){
    for ( i=0;i<1;i++){
        if(i===0){
            location.reload();
            break;
        }  
    }
});

但页面一次又一次地重新加载,好像上面的函数是递归函数一样 我该怎么做?

P.S我这样做是因为this问题。

7 个答案:

答案 0 :(得分:2)

<script type='text/javascript'>
  (function() {
    if( window.localStorage ) { 
      if( !localStorage.getItem('firstLoad') ) { 
        localStorage['firstLoad'] = true;
        window.location.reload(); 
      } else 
        localStorage.removeItem('firstLoad'); 
    } 
  })();
</script>

答案 1 :(得分:1)

您必须设置cookie(或使用javascript的localStorage),或使用xhr检索远程服务器上保存的值。

如果你想使用cookies,它就像

一样简单

document.cookie = "username=John Doe";

其中document.cookie是表单(x=y;a=b;n=z

的查询字符串

如果您希望每次用户访问时都重新加载页面,请确保在设置页面重新加载后完成任何必要的处理后取消设置cookie。

答案 2 :(得分:1)

以下是发生的事情:

  • 页面第一次加载,jQuery调用document.ready事件上的任何处理程序

  • 页面重新加载

  • document.ready再次调用

  • 重复

出于好奇,你为什么要那样做?为什么你有一个可以运行一次迭代的for循环?

另外,要回答你的问题,据我所知,确保页面不重新加载的唯一方法是使用持续约5秒的cookie。然后,在document.ready上检查该cookie,如果存在,则不要重新加载。

答案 3 :(得分:0)

$( window ).load(function() {
    if (window.location.href.indexOf('reload')==-1) {
         window.location.replace(window.location.href+'?reload');
    }
});

答案 4 :(得分:0)

代码没问题。但是,如果该页面是从另一个页面打开的,并且带有指向 id 的链接 (.../page.html#aa),则代码仅适用于 firefox。使用其他浏览器重新加载页面而不去 id。 (对不起我的英语)。

答案 5 :(得分:0)

我用这段代码找到了解决方案。假设页面刷新时间不早于一小时。否则,将分钟添加到 oggindex 变量中。

<script>
var pagina = window.location.href; 
var d = new Date();
var oggiindex = d.getMonth().toString()+'-'+d.getDate().toString()+'-'+d.getHours().toString();
if (localStorage.ieriindex != oggiindex)
    {
    localStorage.setItem("ieriindex", oggiindex);
    window.location.replace(pagina);
    }
 </script>  

答案 6 :(得分:-1)

你的代码每次都是$(document).ready(),所以你的循环是无穷大并不奇怪 - 每个加载都是就绪状态。

如果您提供更详细的要求,我们可以解决它,而不使用窗口对象作为数据持有者。这是不好的方法,但你可以设置它进行测试。

Window对象存储的变量不依赖于重载,因为它比文档高。

让我们试试:

if( window.firstLoad == undefined  ){
    // yours code without any loop
    // plus:
    window.firstLoad = false;
}

您可以使用localStorage API。

同时检查此链接,它提供了有关窗口对象变量的更多信息: Storing a variable in the JavaScript 'window' object is a proper way to use that object?