Se si implementa StreamingHttpResponse
as shown here, la risposta "streaming" non viene visualizzata fino a quando i 10 secondi non sono scaduti. Non ci sono molte informazioni su djangoproject tranne per il fatto che è utile per generare file CSV di grandi dimensioni, pur avvertendo che le attività costose devono essere eseguite al di fuori del ciclo richiesta-risposta.Django 1.5 - utilizzo del nuovo StreamingHttpResponse
Tuttavia, non riesco a vedere che funzioni affatto utilizzando un codice che richiede molto tempo. C'è qualcosa riguardo all'oggetto generatore che impedisce questo? Ecco il codice duplicato per riferimento.
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)
I 100 byte, in streaming o non, saranno memorizzati nel buffer ai livelli più bassi della rete. Prova un milione di righe per cominciare. –
@Pavel Grazie per quello - Ho aggiunto '' * 1024 alla stringa di rendimento e funziona come desiderato – Frank