2013-03-12 63 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)