首页 文章

烧瓶应用程序与jinja渲染;不会自动刷新网页

提问于
浏览
1

我有一个查询数据库的Flask应用程序,并使用jinja模板使用检索到的数据呈现表格 . 我希望网页在第一次点击后定期继续刷新,这样如果数据库中的数据发生变化,网页就会显示新数据 .

我尝试了许多其他人在网上建议的东西,但似乎没有任何效果 . 以下是我尝试过的示例:

1)将以下代码放在jinja模板文件中:

<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<meta http-equiv="refresh" content="5">
</head>

2)将以下代码放在jinja模板文件中:

<head>
<script type="text/JavaScript">
function TimedRefresh( t ) {
setTimeout("location.reload(true);", t);
}
</script>
</head>

<body onload="JavaScript:TimedRefresh(2000);">
<p>Auto Refreshing Every 30 Seconds.</p>
</body>

3)将以下代码放在jinja模板文件中:

<head>
<script TYPE="text/javascript">
var datetime = null,
    date = null;

var update = function () {
    date = moment(new Date())
    datetime.html(date.format('dddd, MMMM Do YYYY, h:mm:ss a'));
};

$(document).ready(function(){
    datetime = $('#datetime')
    update();
    setInterval(update, 1000);
});
</script>
</head>

..和

<div id="datetime"></div>

等等..

没有任何效果 . 该页面作为门把手死了 - 第一次加载,但除非我按下按钮,否则不会自动刷新 . 我真的很困惑 . 非常感谢任何帮助 . 任何一种清爽都很好 - 不需要分段 . 请帮忙 .

谢谢你,尼拉 .

1 回答

  • 1

    复制粘贴模板文件中 {% block page_content %} 行以及 <style> 行以下的代码:

    <script type="text/javascript">
    var timer = function() {
        setTimeout(function(){ window.location.reload(); }, 1500);
    };
    timer();
    </script>
    

    这是您的文件应该如何显示:http://pastebin.com/G5tFxeA2

    注意:这种刷新表数据的方法是一种非常糟糕的技术 . 您很可能希望使用API查询表数据并重绘所有字段 .

相关问题