我希望使用 Flask 和 jQuery 动态填充结果。
我有一个程序,它在后端函数中运行一系列任务,并将结果附加到列表中。有没有办法通过 ajax/jquery 动态地将结果添加到页面(例如每隔几秒),直到后端完成运行(几乎像 Travelocity 这样的网站在找到航类时动态地将航类添加到页面)。目前,我无法理解如何在后端仍在运行时使用 ajax 更新结果(它会等到完成后再返回任何结果)。
我的假设示例:
$.ajax({
url: '/test',
type: 'post',
data: 'Begin Running Backend',
dataType: 'json',
success: function(data) {
while(**BACKEND IS RUNNING**){
$("#samplediv").text(data.current_results);
}
},
error: function(data) {
console.log("FAILED");
}
});
在后端时:
@app.route("/test",methods=['GET','POST'])
def test():
run_script() #In this script, a for loop is adding results to a list
return jsonify(results=list)
最佳答案
此处不需要 while
循环,因为在服务器做出良好响应之前,您不会收到 success
回调。
但是,您可能遇到的最大问题是由于响应时间较长而可能超时
:
您可以添加以下内容以使其最多 1 分钟:
timeout: 60000
然后在您的成功函数中,从记录
结果开始:
success: function (data) {
console.log(data);
}
您不需要使用 while
循环以这种方式暂停客户端。
关于javascript - 当后端在 Flask 中运行时动态填充 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41773902/