我正在更新一个流式应用的MongoDb数据库。我希望数据库中的变化能够反映在前端。
在前端,我目前正在对数据库进行刷新,但我必须手动刷新以获得新的更新。定期刷新并不是一个好的选择,因为更新可能太快了,很多时候一秒钟,甚至很慢,一小时几次。
我遇到了SSE(服务器发送事件)。但不知道它是否能用在我的案例中。
我所寻找的是一个好的基于PUSH的方法。后台服务器可以改成前台客户端。
我使用的是:一个基于PULL的方法,而不是.通常,在这种情况下,AJAX请求与javascript中的setInt()可以使用。在这种情况下,不必刷新整个页面。但只需使用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框架同步进行。