我有一个基于Python的烧瓶Web应用程序,它在html页面上显示了一些SQL信息。
此页面是半实时的,每15分钟刷新一次,只需简单的html刷新:
<META HTTP-EQUIV="refresh" CONTENT="9000">
只要连接已启动,就没有内部代码错误。
现在,我不想手动刷新页面,因为无论出于何种原因它都无法正确刷新页面。 (连接,内部错误)。
是否可以让网页在每个固定的时间段内保持刷新,无论上次刷新是否成功。
目前html页面不包含Javascript等,只是简单的html,由Flask内置模板引擎Jinja2生成。
是否可以首先完全加载网页,而不是检查它是否成功然后刷新?
答案 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);