2009-03-24 8 views
11

Best Practices for Speeing Up Your Web Site von Yahoo enthält folgende Empfehlung:Kann ich den Puffer frühzeitig mit ASP.NET leeren?

Wenn Benutzer eine Seite anfordern, es von 200 bis 500 ms überall hin mitnehmen für den Back-End-Server zusammen, um die HTML-Seite zu nähen. Während dieser Zeit ist der Browser inaktiv, da er auf das Eintreffen der Daten wartet. In PHP haben Sie die Funktion flush(). Es ermöglicht Ihnen, Ihre teilweise fertige HTML-Antwort an den Browser zu senden, damit der Browser Komponenten abrufen kann, während Ihr Back-End mit dem Rest der HTML-Seite beschäftigt ist. Der Vorteil wird vor allem bei vielbeschäftigten Backends oder Light Frontends gesehen.

Ein guter Platz zum Überdenken ist direkt nach dem HEAD, da der HTML-Code für den Kopf normalerweise einfacher zu erstellen ist und es erlaubt, CSS- und JavaScript-Dateien für den Browser einzubinden, um den parallelen Abruf zu starten, während das Backend noch läuft wird bearbeitet.

Beispiel:

... <!-- css, js --> 
</head> 
<?php flush(); ?> 
<body> 
... <!-- content --> 

Beachten Sie den Punkt, an dem die bündig hier auftritt, ist, nachdem der Kopf-Tag geschrieben wird. Dies ist sehr sinnvoll, damit der Browser Bilder und Skripts laden kann, während der Rest der Seite gerendert und bedient wird.

Gibt es eine Möglichkeit, nach dem Kopf (oder einem anderen Teil der Seite) explizit mit ASP.NET zu spülen?

Antwort

10

Sie sollten den folgend auf Ihrer Seite zwischen dem Ende des Kopfes und dem Beginn der Körper Anweisung zu setzen in der Lage:

<% Response.Flush(); %> 

jedoch vorsichtig sein, hier in dem Fall, dass Sie ein Skript verwenden Manager oder jede andere Art von Kontrolle, die sich für die Ausgabe im Kopfbereich des HTML registrieren wird.

+0

ja ... sobald die Antwort gelöscht wurde, werden viele Dinge verhindert, die auf das Antwortobjekt schreiben wollen. –

3

Sie können auch explizit Buffer = true im @ Page-Tag oben auf der Seite festlegen, um Response.Flush() -Wurfsfehler zu vermeiden.

Verwandte Themen