我正在努力让SSE(服务器发送事件)演示在烧瓶中工作。
@app.route('/sse-demo')
def sse():
def delay():
for i, c in enumerate("hello"*10):
time.sleep(.5) # an artificial delay
yield i, c
# with render_template it works!
#return render_template('sse_demo.html', data=g())
# with stream_template it doesn't work!
return Response(stream_template('sse_demo.html', data=delay()))
我的 sse_demo.html 模板如下所示
<!doctype html>
<title>Send javascript with template demo</title>
<script src="/static/js/jquery.min.js"></script>
<style>
#data {
text-align: center;
}
</style>
<div id="data">nothing received yet</div>
{% for i, c in data: %}
<script>
$("#data").text("{{ i }} {{ c }}")
</script>
{% endfor %}
render_template 可以正常使用。我看/ / sse-demo url打印 1小时到 49 o 。
但是使用 stream_template ,我的页面会等待一段时间并打印 49 o 。
为什么?