如何只加载一次页面

时间:2015-04-24 05:16:47

标签: javascript

下面是我的代码,但页面加载不断,我只想加载一次



 window.onload = function () {
            window.location.reload();
        }




5 个答案:

答案 0 :(得分:4)

有几种方法可以解决这个问题,所有这些方法都要求跨页面加载保存状态。您可以使用cookies,localStorage,位置对象本身等。

这是一种检查是否有“重新加载”哈希字符串的方法,如果没有,则添加它并重新加载页面。然后,当它再次尝试执行时,哈希将在那里并且不会重新加载:

if (location.hash.indexOf('reloaded') === -1) {
  location.hash += 'reloaded';
  location.reload();
}

答案 1 :(得分:3)

$(document).ready(function(){    
    if(document.URL.indexOf("#")==-1){ //Check if the current URL contains '#'
        url = document.URL+"#"; // use "#". Add hash to URL
        location = "#";
        location.reload(true); //Reload the page
    }
});

由于if条件页面只会重新加载一次。

实现这一目标的另一种方法是:

(function()
{
  if( window.localStorage )
  {
    if( !localStorage.getItem('firstLoad') )
    {
      localStorage['firstLoad'] = true;
      window.location.reload();
    }  
    else
      localStorage.removeItem('firstLoad');
  }
})();

答案 2 :(得分:1)

window.onload = function () 
{
      // for getting params value
      function parse(val)
      {
        var  result = "not found";
          tmp = [];
          location.search
           .substr(1)
           .split("&") 
           .forEach(function (item) {
             tmp = item.split("=");
             if (tmp[0] === val) result = decodeURIComponent(tmp[1]);
               });
          return result;
      }

      if(parse("load")!="once")
      {
        //sending parameter so next time it won't reload.. 
        window.location.href += "?load=once";
        window.location.reload();
       }
}

答案 3 :(得分:0)

访问页面的性质,它只会加载一次。您可以更改代码以证明这一事实:

window.onload = function () {
    alert("Loaded");
}

但是,我建议检测页面加载的vapor.js路由,即省略此onload调用,因为onload函数中的代码行在页面加载后运行。我想你或者不知道你的目标是什么,或者你有一个完全不同的问题,你试图以一种没有意义的方式解决

答案 4 :(得分:0)

你构建了一个循环,

  • 网站正在加载
  • 触发window.onload
  • 重新加载
  • 网站正在(重新)加载
  • 触发window.onload
  • 重新加载
  • .......
  • .......

您需要了解的重要事实是浏览器从上到下贯穿您的代码,当您重新加载页面时,整个过程会重复。

因此,每次重新加载时,只要窗口对象完全加载,window.onload事件监听器就会被注册并调用附加到它的函数。

没有任何机制告诉浏览器停止。

如果你想在加载DOM后运行你的Javascript代码,并且你正在寻找一个独立于浏览器的解决方案,我会推荐jQuery及其$( document ).ready()函数。

将jQuery包含在您的网页中

$( document ).ready(function(){
   //Code inside this function runs after your document is loaded
})