如果我实施StreamingHttpResponse
as shown here,则直到10秒钟才会显示“流媒体”响应。关于djangoproject的信息不多,只是说它对生成大型CSV文件很有用,同时警告应该在请求 - 响应周期之外执行昂贵的任务。
但是,我看不到它使用时间密集型代码。生成器对象有什么可以防止这种情况吗?这是重复的代码供参考。
import time
from django.http import StreamingHttpResponse
def stream_response(request):
resp = StreamingHttpResponse(stream_response_generator())
return resp
def stream_response_generator():
for x in range(1,11):
yield '{} <br />\n'.format(x)
time.sleep(1)
答案 0 :(得分:2)
[OP的解决方案转换为以下答案]
Pavel的评论指出,我的例子的问题在于浏览器的缓冲,这可以通过修改发送的数据量来解决,例如。
yield '{} <br /> {}'.format(x, ' '*1024)