ich baue aktuell eine Django-Website (mit Django-CMS), die für den Benutzer eine Rechnung ausführt. Die Berechnung dauert lange und daher gibt es im Browser für den Nutzer nach einer kleinen Weile, dass es einen Fehler gab. Grund: der Browser wartet nicht mehr auf das Ergebnis der Berechnung, sondern wirft einen Fehler aus. Der Nutzer fragt sich also, was los ist. Im Hintergrund wird aber natürlich weitergerechnet, nur das Ergebnis kommt beim Nutzer nie an - da ja vom Browser abgebrochen.
Super simpel sieht das so aus:
Code: Alles auswählen
def meine_berechnung(request):
# rechne viele schritte, 1 von 10.000, 2 von 10.000, .... , 10.000 von 10.000
# Nutzer wartet ggf. 120 und mehr Sekunden
# bei wenigen Berechnungen erhält der Nutzer eine Ausgabe, bei vielen Berechnungen kommt es zum Timeout
return render(request, "ergebnis_zu_meine_berechnung.html", {"ergebnis": ergebnis)
Jetzt würde ich gerne den Nutzer über den Stand der Berechnung informieren. Gibt es so was wie eine for-Schleife, mit der ich den Browser ansteuern kann, um nach x Berechnungen einen Zwischenausgabe zu machen, die dann vom Konstrukt her wie folgendes aussehen würde?
Code: Alles auswählen
def meine_berechnung(request):
for i in range(10.000):
return render(request, "ergebnis_zu_meine_berechnung.html", {"zwischenergebnis": i)
Vielen Dank für eure Hilfe
Marco