Django 1.5 - 使用新的StreamingHttpResponse

时间:2013-03-12 11:21:18

标签: django django-views

如果我实施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)

1 个答案:

答案 0 :(得分:2)

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

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

yield '{} <br /> {}'.format(x, ' '*1024)