2013-03-12 8 views
6

StreamingHttpResponseas shown hereを実装すると、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バイトは、ストリーミングかどうかは、ネットワークの最低レベルで絶対にバッファリングされます。最初は100万行を試してみてください。 –

+0

@Pavelありがとうございます - 私は '' * 1024をyield文字列に追加しました。これは必要に応じて機能します – Frank

答えて

2

[OPの溶液は、以下応答に変換]

パベルのコメントは、私の例の問題は、例えばように、送信されるデータの量を変更することによって解決されるブラウザのバッファリング、としたことを指摘

yield '{} <br /> {}'.format(x, ' '*1024) 
関連する問題