2013-03-12 68 views
6

如果我实现StreamingHttpResponseas shown here,'streaming'响应直到10秒后才显示。关于djangoproject没有太多的信息,只是说它可用于生成大型CSV文件,同时警告应在请求 - 响应周期之外执行昂贵的任务。Django 1.5 - 使用新的StreamingHttpResponse

但是,我看不到它使用时间密集型代码。是否有关于防止这种情况的发电机对象?这里是重复的代码以供参考。

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) 
+8

您的100字节,流或不是,将绝对缓冲在最低级别的网络。尝试一百万行的开始。 – 2013-03-12 11:26:53

+0

@Pavel感谢您的支持 - 我在收益字符串中添加了''* 1024,并且按需要 – Frank 2013-03-12 12:17:42

回答

2

[OP的溶液转化以下回答]

Pavel的评论指出,与我的例子的问题是与浏览器的缓冲,这是通过修改发送的数据量,因为例如解决

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