HTML自动刷新页面但先检查连接

时间:2014-07-20 13:32:24

标签: javascript python html

我有一个基于Python的烧瓶Web应用程序,它在html页面上显示了一些SQL信息。

此页面是半实时的,每15分钟刷新一次,只需简单的html刷新:

<META HTTP-EQUIV="refresh" CONTENT="9000">

只要连接已启动,就没有内部代码错误。

现在,我不想手动刷新页面,因为无论出于何种原因它都无法正确刷新页面。 (连接,内部错误)。

是否可以让网页在每个固定的时间段内保持刷新,无论上次刷新是否成功。

目前html页面不包含Javascript等,只是简单的html,由Flask内置模板引擎Jinja2生成。

是否可以首先完全加载网页,而不是检查它是否成功然后刷新?

3 个答案:

答案 0 :(得分:2)

如果您获得了jQuery等javascript库,则可以使用异步Ajax functions执行此操作。以下示例说明如果成功加载,您每15分钟可以替换<body>内容:

function update_site() {
    $.ajax({
        url: "/my/page/url/",
        dataType: "html",
        cache: false,
        success: function(data) {
            // Replace body with loaded site. You can do more checks here to check
            // if the fetched content is all there.
            var body_html = /^.*<body>(.*)<\/body>.*$/g.exec(data)[1];
            $('body').html(body_html);
        }, 
        error: function(data) {
            // Couldn't load site. 
        }
    });
}
// Run every 15 minutes.
window.setInterval(function() {
  update_site();
}, 15*60*1000);

答案 1 :(得分:0)

按下按钮时,您可以实现一些javascript来检查连接。您可以使用navigator.onLine属性,该属性应该适用于所有主流浏览器。

在这里阅读更多内容: http://www.w3schools.com/jsref/prop_nav_online.asp

答案 2 :(得分:-2)

应该尝试这个

function update_site() {
    $.ajax(
    {
    url: "/my/page/url/",
    dataType: "html",
    cache: false,
        success: function(event) 
        {
            var update_html = /^.*<body>(.*)<\/body>.*$/g.exec(event)[1];
            $('body').html(update_html);
        }, 
        error: function(event) {
            
        }
    });
}
// Run every 10 minutes.
window.setInterval(function() {
  update_site();
        // To refresh site every 15 min
}, 15000000);