7

如果我StreamingHttpResponse 按照此处所示的方式实现,则在 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)
4

1 回答 1

2

[OP的解决方案转换为下面的答案]

Pavel 的评论指出,我的示例的问题在于浏览器的缓冲,这是通过修改发送的数据量来解决的,例如

yield '{} <br /> {}'.format(x, ' '*1024)
于 2014-11-20T13:37:51.720 回答