我正在烧瓶上提供一些计算结果。
对于复杂的项目,可能会花费一些时间,并且我想显示一个进度条或其他内容,以告知用户系统实际上正在执行某项操作并且未冻结。
我无法估计需要多长时间。
从概念上讲,在运行计算时,如何在烧瓶中向用户实施通知?它类似于流数据吗?
我知道这听起来很普通,我在寻求解决问题的建议,或者是伪代码的脚手架,该伪代码显示了前端的GET ajax如何处理flask响应,应该通知正在运行但尚未完成的计算进度。
答案 0 :(得分:0)
我认为您所描述的更多是结构性问题,与Flask并不完全相关。后端(在本例中为Flask)提供了一个api,在客户端,您需要正确处理结果表示,包括等待时间。
假设您使用Flask实现并公开了API,则可以通过以下方式使用javascript处理来自前端的调用:
# HTML
<div class="status" onclick="refresh()">click me</div>
# JAVASCRIPT
function refresh() {
var status = document.querySelector('.status');
status.textContent = "calling api";
callAPI();
function callAPI() {
return new Promise(function (resolve, reject) {
// Flask API call here ...
setTimeout(function(){ resolve()}, 2000);
});
}
callAPI().then(function(result) {
status.textContent = "show results";
});
}