Wenn Sie Response.Flush und Response.Clear kennen, müssen Sie nicht so warten. Jedes Mal, wenn eine HTML-Seite generiert wird, wird Response.write verwendet, um sofort eine Nachricht zurückzugeben, die angibt, dass der Datenbankeintrag HTML generiert hat. Wenn ein Programmierer eine statische HTML-Seite schreibt, die aus einer ASP-Seite generiert wurde, und eine große Anzahl von Seiten gleichzeitig generiert wird, muss er auf einen langen Warteprozess gestoßen sein, bei dem der Fortschrittsbalken am unteren Rand des Browsers 3 %, 6 % anzeigt %, 10 % usw., die langsam ansteigen. Während dieses Wartevorgangs wissen Sie nicht, welcher Datensatz auf der Seite generiert wurde, und können daher nur mit offenen Augen warten.
Wenn Sie Response.Flush und Response.Clear kennen, müssen Sie nicht so warten. Jedes Mal, wenn eine HTML-Seite generiert wird, wird Response.write verwendet, um sofort eine Nachricht zurückzugeben, die angibt, dass der Datenbankeintrag HTML generiert hat.
Auf diese Weise sind Sie bei der gleichzeitigen Generierung einer großen Anzahl von Seiten nicht mehr allein vor einer leeren Seite, sondern können nur benommen auf den sich langsam ändernden Fortschrittsbalken am unteren Rand des Browsers blicken Selbst wenn es zu einem Unfall, z. B. einem Absturz, einem Stromausfall usw. kommt, wissen Sie, wann die nächste Generation aufgezeichnet und neu gestartet werden sollte, um HTML zu generieren. Ist das nicht toll? Das ist ein Fortschrittsbalken und genauer gesagt.
Haha, keine Sorge, schauen wir uns zunächst die Bedeutung von Response.Flush und Response.Clear an.
Die Flush-Methode des Response-Objekts sendet die Ausgabe sofort in den Puffer. Diese Methode verursacht einen Laufzeitfehler, wenn Response.Buffer nicht auf TRUE gesetzt ist. Syntax: Response.Flush; Hinweis: Wenn die Flush-Methode auf einer ASP-Seite aufgerufen wird, antwortet der Server auf die Keep-Alive-Anfrage auf der Seite. Wird auf Antwortobjekte angewendet.
In Bezug auf Puffer finden Sie hier eine Einführung. Buffer bedeutet aus dem Englischen wörtlich Pufferzone. Hier nennen wir es Puffer, weil es nicht nur ein Substantiv, sondern auch ein Verb ist.
Der Puffer ist ein Ort, an dem eine Reihe von Daten gespeichert werden. Die vom Client erhaltenen Daten können direkt aus dem Ausführungsergebnis des Programms oder aus dem Puffer ausgegeben werden. Es gibt jedoch einen Geschwindigkeitsunterschied zwischen diesen beiden Methoden: Wenn im Web ein ASP-Programm nicht oft angefordert wird, gibt es im Grunde keinen Unterschied zwischen den beiden, zumindest können wir ihn nicht spüren. Aber wenn viele Leute ein ASP-Programm anfordern, ist die Geschwindigkeit unterschiedlich. Wenn kein Puffer vorhanden ist, ist das von jedem Client, der das ASP-Programm anfordert, erhaltene Ergebnis das Ergebnis, das durch einmaliges Ausführen des ASP-Programms erzielt wird. Wenn das ASP-Programm im Voraus gepuffert wird, ist das von jedem Client erhaltene Ergebnis das gepufferte Ergebnis Das Ergebnis des Bereichs ist nicht das Ergebnis der einmaligen Ausführung des Programms. Wenn beispielsweise 1.000 Benutzer gleichzeitig auf eine ASP-Seite zugreifen, wird das Programm tausendmal ausgeführt, was die Belastung des Servers erhöht und dazu führt, dass der Client die Seite langsamer öffnet Wenn das ASP-Programm gepuffert ist, ist das Ergebnis unterschiedlich. Jeder Client erhält Daten direkt aus dem Puffer, und der Server erhöht die Anzahl der Programmausführungen aufgrund des erhöhten Zugriffs nicht, sodass die Geschwindigkeit, mit der der Client die Seite öffnet, höher ist langsamer als im vorherigen Fall. Dies ist der Vorteil von Buffer.
In Bezug auf Response.clear löscht die Clear-Methode alle HTML-Ausgaben im Puffer. Die Clear-Methode löscht jedoch nur den Antworttext und nicht die Antwortheader. Mit dieser Methode können Sie Fehlerbedingungen behandeln. Beachten Sie, dass diese Methode einen Laufzeitfehler verursacht, wenn Response.Buffer nicht auf TRUE gesetzt ist. Syntax: Response.Clear; wird auf Response-Objekte angewendet.
Nun, wenn Sie den Effekt einer sofortigen Ausgabe erzielen möchten, fügen Sie einfach Response.Flush und Response.Clear nach den gewünschten Ausgabeaufforderungsinformationen im Schleifenkörper hinzu. wie:
<%
für i=1 bis 2000
für i1=1 bis 3000
''Leere Schleife, die jede Ausführungszeit verlängert
nächste
Response.write i&)
Response.Flush
Antwort.Klar
nächste
%>
Nachdem Sie die obige ASP-Anweisung ausgeführt haben, werden Sie feststellen, dass die Ausgabe einzeln ausgegeben wird. Wenn Sie sie einmal ausführen, wird sie einmal ausgegeben.
Aber ich habe jemanden im Internet gesehen, der oft sagte, dass wir feststellen, dass selbst wenn wir Response.Flush () verwenden, die vorherigen Informationen nicht zur Anzeige an den Client gesendet werden. Uns wird immer noch ein weißer Bildschirm angezeigt. Nach mehrmaligem Testen kam ich zu dem Schluss: Der Flush-Inhalt muss mindestens 256 Byte betragen. Das heißt, nur wenn die Kompilierung mindestens 256 Byte Daten generiert, können die Informationen an den Client gesendet und nach der Ausführung von Response.Flush() angezeigt werden.
Es ist seltsam, dass die Anweisung, die ich oben gegeben habe, tatsächlich den Effekt einer einzelnen Anzeige erzielt und nicht 256 Bytes im Voraus ausgibt. Sie können die obige Anweisung als Notepad speichern und ausführen, um zu sehen, dass der Effekt Zeile für Zeile angezeigt wird. Die von mir aufgeführten Meinungen stellen ausschließlich die persönliche Meinung von flymorn dar und dürfen nicht für andere Zwecke verwendet werden.
Wenn Sie wirklich vorher 256 Bytes ausgeben müssen, können Sie Folgendes tun:
<%
dim liji
für i=1 bis 256
liji=liji&<!--Generieren Sie zuerst 256 Zeichen-WWW.PIAOYI.ORG-->
Wenn len(liji)>=256, dann beenden Sie für
nächste
%>
Sollten Sie unterschiedliche Ansichten oder unterschiedliche Testergebnisse haben, können Sie dies gerne mit mir besprechen.