Classic asp - Wann ist Response.flush zu verwenden?

8

Wir haben einen schmerzhaft langsamen Bericht. Ich habe eine Response.flush hinzugefügt und es scheint viel besser zu sein. Was sind einige der Vorbehalte bei der Verwendung dieser Methode.

    
Brian G 25.09.2008, 19:16
quelle

4 Antworten

8

Wenn Response.Buffer nicht auf "true" gesetzt ist, erhalten Sie einen Laufzeitfehler. Wenn die Flush-Methode auf einer ASP-Seite aufgerufen wird, berücksichtigt der Server Keep-Alive-Anforderungen für diese Seite nicht.

Sie sollten auch darauf achten, ob Sie ein tabellenbasiertes Design verwenden, da es in einigen Browsern erst dann gerendert wird, wenn die gesamte Tabelle gesendet wurde. Dies bedeutet, dass der Benutzer immer noch 10.000 Zeilen benötigen würde warten, bis alle 10.000 Zeilen übertragen wurden, bevor sie sie tatsächlich sehen.

    
Wayne 25.09.2008, 19:19
quelle
6

Erweitern Wayne's Antwort : wenn überhaupt Sie müssen Sie Response.Headers setzen, Sie können es nicht tun, nachdem ein Teil der Response gelöscht wurde.

    
Nikki9696 25.09.2008 19:34
quelle
3

Es gibt keine Probleme beim Löschen der Antwort. Im Allgemeinen wird empfohlen, die gesamte Seite zu puffern und sie an den Client zu puffern, aber für lange laufende Skripts ist es oft besser, einige Daten dem Client anzuzeigen, damit der Benutzer sieht, dass etwas passiert.

Denken Sie daran, dass das manuelle Leeren nur dann wirksam ist, wenn Sie die Seite von Anfang an puffern, sonst wird IIS automatisch gespült (streamt die Seite zum Client).

Sie sollten das Spülen zu oft vermeiden, da IIS dann Ressourcen verwenden muss, um die Seite häufig zu leeren, anstatt das Skript zu verarbeiten. Ie .: flush alle 50 Zeilen statt jeder Zeile.

    
Espen 11.12.2008 18:37
quelle
2

Response.flush könnte nützlich sein, um den Header des Berichts an den Browser zu senden. Zeigen Sie dann eine "loading message" an, dann Ihren Berichtsprozess und Sie leeren den Bericht und führen dann ein kleines Stück JavaScript aus, um das "Laden" zu verbergen. Nachricht.

Auf diese Weise können Sie Ihren Benutzern mitteilen, dass etwas nicht funktioniert, damit sie nicht STOP BACK drücken oder das Fenster schließen, da sie sonst versucht werden könnten.

Außerdem habe ich viel mit dem Browser gespielt, der angibt, welche Tabelle und IE der einzige zu sein scheint, der keine Tabelle rendert, wenn das Tag nicht empfangen wird. Das bedeutet, dass alle Zeilen nach und nach in anderen Browsern angezeigt werden können, aber nicht in IE.

    
matdumsa 01.10.2008 18:33
quelle

Tags und Links