【问题标题】:How to update flask frontend instantly when MongoDb database updates?MongoDb 数据库更新时如何立即更新烧瓶前端?
【发布时间】:2020-05-14 06:18:54
【问题描述】:
我正在从流式应用程序更新 MongoDb 数据库。我希望数据库中的更改反映在前端。
在前端,我目前正在查询数据库,但我必须手动刷新才能获得新的更新。定期刷新不是一个好选择,因为更新可能每秒过快多次,甚至一小时几次非常慢。
我遇到了 SSE(服务器发送事件)。但不知道它是否可以用于我的情况。
【问题讨论】:
标签:
database
mongodb
flask
server-sent-events
real-time-updates
【解决方案1】:
我正在寻找的是一种基于 PUSH 的良好方法。后端服务器可以更改为前端客户端。
我用过的:
取而代之的是基于 PULL 的方法。
通常,在这种情况下,可以使用 JavaScript 中带有 setInterval() 的 AJAX 请求。在这种情况下,不必刷新整个页面。但是只需定期使用 ajax 请求来定期检查更新。并且在更新的情况下可以附加/填充相关的 Html。
这是我使用的:
function update(){ // This functions is called repeatedly
$.ajax({
url: "/update/",
type: "POST",
success: function(resp){
$('div.stats').html(resp.data); // append/fill to appropriate div
}
});
}
var myVar = setInterval(update, 1000); // update every 1sec
这是很常用的方法。
这符合我的目的。
还有一些方法可以改为使用基于 PUSH 的方法。请参阅COMET 编程。但我找不到与 Web 框架同步的合适工具。