1年前にDjangoのStreamingHttpResponseを使用してテキストファイルをストリーミングし、Chromeは受信したテキストをすべてすぐに表示しました。同じコードでは、テキストファイルが完全に読み込まれたときにのみテキストが表示されるため、サーバーのタイムアウトが発生する可能性があります。これはFirefoxでは起こりません。ChromeはDjangoのStreamingHttpResponseのコンテンツをストリーミングしません
私は簡単なテストを作成しました:私はFirefoxでそのビューにアクセスした場合、そのブラウザは、15秒間の各2番目の「THIS ISは....」プリントアウトします
# views.py
import time
from django.views import generic
class TestEditView(generic.TemplateView):
def generator(self):
for _ in range(15):
time.sleep(1)
yield 'THIS IS {}\n'.format(_)
print('LOG: THIS IS {}\n'.format(_))
def get(self, request, *args, **kwargs):
return StreamingHttpResponse(self.generator(),
content_type="text/plain; charset=utf-8")
を。しかし、Chromeでは、ブラウザは15秒待ってから、開発サーバーが「LOG:THIS IS ...」を1秒に1回ログしても、「THIS IS ...」のすべてを印刷します。
この問題で私が逃した微妙なことがあるのだろうかと思います。ありがとうございました。
Python:3.6.2。
ジャンゴ:1.10.5
私は転送コードを '' chunked''に設定する必要があると思います。そうしなければ、ブラウザは完全なファイルを待っているかもしれません。 – allo
私はここで何が問題なのか分かりません。クローム開発者のバグレポートがあるようですね。 –