我将需要从许多数据源中提取数据-这是一个耗时的过程。 如果用户发送表格,程序将从7个表中提取数据(使用ajax)
我想提供一个信息,例如“从table1提取数据”,“从table2提取数据”等等。
但不知道如何执行-这种任务是否有好的标准? 我正在使用python / django作为后端
预先感谢
答案 0 :(得分:1)
您可以使用XHR onprogress function在JavaScript中流式传输数据。每当从服务器刷新数据时,都会定期调用该函数。因此,只要您想显示当前状态,就可以在Python中使用sys.stdout.flush()
强制刷新。
test.py
import sys
import time
for x in range(5):
print(x)
sys.stdout.flush()
time.sleep(1)
test.html
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<button id="btn">Begin Stream</button>
<div id="app"></div>
<script>
$(function() {
$("#btn").on("click", () => {
$.ajax('test.py', {
xhrFields: {
onprogress: (e) => {
$("#app").html(e.currentTarget.response);
}
}
})
.done((data) => {
$("#app").html(`DONE: ${data}`);
})
.fail((data) => {
$("#app").html(`ERROR: ${data}`);
});
});
});
</script>