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 に答える