【问题标题】:How to autorefresh if page failed to load?如何自动刷新页面加载失败?
【发布时间】:2019-01-19 08:04:11
【问题描述】:

我想出了这些解决方案:

我的解决方案/期望:
设置一个 setTimeout()。因此,如果页面仍然无法加载,则在 5 秒内,我将重新加载(自动)页面。

见代码:

var time;
window.onload = function(){
    time = setTimeout(function(){ document.location.reload(); }, 5000);
};

$(document).ready(function(){
    clearTimeout(time);
});

我的问题 这个解决方案是即使页面已经加载,页面仍然会重新加载。

如果页面已经加载,我想取消 setTimeout,但上面的代码没有按预期工作。

有人可以帮助我,我的论文真的需要这个。请帮忙。感谢您的建议。

【问题讨论】:

  • 你试过 document.readyState === 'complete' 条件吗?
  • 请注意,在移动设备上加载页面可能需要更长的时间,因此您最终会出现重新加载循环。
  • @Joshua 首先我是妈妈:P,其次我已经发布了我的答案标记它是正确的,因为它对你有帮助:)

标签: javascript jquery html function


【解决方案1】:

这会有所帮助..因为文档本身有 readyState 变量

var time;
window.onload = function() {
    time = setTimeout(function() {
        if (document.readyState === 'complete') {
            clearTimeout(time);
        } else {
            document.location.reload();
        }

    }, 5000);
};

【讨论】:

    【解决方案2】:

    像这样使用document.readyState,而不是jQuery:

    var time;
    window.onload = function(){
        time = setTimeout(function(){
            document.location.reload(); 
        }, 5000);
    };
    
    document.onreadystatechange = function() {
        if (document.readyState == "complete") {
            clearTimeout(time);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-05-17
      • 2020-11-08
      • 2012-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-23
      • 1970-01-01
      相关资源
      最近更新 更多