Frage

Wir haben ein quälend langsam report.I eine Response.Flush hinzugefügt und es scheint sehr viel besser. Was sind einige der Einschränkungen von dieser Methode.

War es hilfreich?

Lösung

Wenn Response.Buffer nicht auf true gesetzt, dann werden Sie einen Laufzeitfehler erhalten. Auch wenn die Flush-Methode auf einer ASP-Seite aufgerufen wird, wird der Server nicht ehrt Keep-Alive-Anfragen für diese Seite.

Sie werden auch aussehen wollen, wenn Sie eine tabellenbasierte Design verwenden, da es nicht in einigen Browsern machen wird, bis die gesamte Tabelle gesendet wird .. was bedeutet, wenn Sie 10.000 Zeilen haben, würde der Benutzer noch brauchen für alle 10.000 Zeilen warten, zu übertragen, bevor sie sie tatsächlich sehen würde.

Andere Tipps

Die Erweiterung Wayne Antwort : Wenn alles, was Sie Sie braucht Response.Headers zu setzen, können Sie es nicht tun nach jedem Teil der Antwort Flutsch wurde.

Es gibt keine Probleme mit der Antwort wie diese Spülung. Es wird allgemein für eine bessere Leistung empfohlen, die gesamte Seite und die bündig an den Client, sondern für lange laufende Skripte zu puffern ist es oft besser, den Client einige Daten angezeigt werden, damit der Benutzer etwas sieht geschieht.

Sie daran denken, dass nur manuell Spülen eine richtige Wirkung hat, wenn die Seite von Anfang an Pufferung, sonst IIS automatisch spülen wird (Strom die Seite an den Client).

Sie sollten vermeiden, zu oft als IIS Spülung wird dann Ressourcen nutzen, müssen Sie die Seite oft auf Spülung statt das Skript zu verarbeiten. D.h .: alle 50 Zeilen statt je Zeile spülen.

Response.Flush nützlich sein könnte, an den Browser Header des Berichts zu senden .. dann zeigen eine „Lademeldung“, dann Ihren Bericht Prozess und Sie den Bericht spülen, dann ein kleines Stück Javascript, führen Sie den „Laden“ zu verstecken Nachricht.

Auf diese Weise können Sie Ihre Benutzer wissen, dass etwas hapenning, damit sie nicht STOPP BACK drücken oder einfach nur das Fenster schließen, da sie sonst versucht sein könnte.

Außerdem habe ich viel mit gespielt, was Browser machen, was Tabelle und IE scheint der einzige zu sein, die keine Tabelle nicht machen, es sei denn der Tag empfangen wird. Was bedeutet, dass alle Zeilen nach und nach in anderen Browser angezeigt konnte, aber nicht im Internet Explorer.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top