Jeśli zaimplementuję StreamingHttpResponse
as shown here, odpowiedź "streaming" nie zostanie wyświetlona, dopóki 10 sekund nie minie. Nie ma zbyt wielu informacji na temat djangoproject, z wyjątkiem tego, że jest to przydatne do generowania dużych plików CSV z ostrzeżeniem, że kosztowne zadania powinny być wykonywane poza cyklem żądanie-odpowiedź.Django 1.5 - używanie nowej StreamingHttpResponse
Jednak nie widzę, że działa w ogóle przy użyciu kodu czasochłonnego. Czy jest coś w obiekcie generatora, który temu zapobiega? Oto kod powielony dla odniesienia.
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)
Twoje 100 bajtów, streaming lub nie, zostanie całkowicie zbuforowane na najniższych poziomach sieci. Wypróbuj milion wierszy na początek. –
@Pavel Dzięki za to - dodałem "* 1024 do ciągu zysku i działa zgodnie z oczekiwaniami – Frank