2009-03-24 14 views
11

Best Practices for Speeing Up Your Web Site de Yahoo incluye la siguiente recomendación:¿Puedo eliminar el búfer al principio de ASP.NET?

Cuando los usuarios solicitan una página, se puede tomar de 200 a 500 ms para el servidor back-end para hilvanar la página HTML. Durante este tiempo, el navegador está inactivo ya que espera a que lleguen los datos. En PHP tienes la función flush(). Le permite enviar su respuesta HTML parcialmente preparada al navegador para que el navegador pueda comenzar a buscar componentes mientras el backend está ocupado con el resto de la página HTML. El beneficio se ve principalmente en backends ocupados o interfaces ligeras.

Un buen lugar para considerar el enjuague es justo después de HEAD porque el HTML para el encabezado es generalmente más fácil de producir y le permite incluir cualquier archivo CSS y JavaScript para que el buscador empiece a buscar en paralelo mientras el backend está todavía tratamiento.

Ejemplo:

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

Nota el punto en que el rubor se produce aquí es después de la etiqueta de la cabeza está escrito. Esto tiene mucho sentido para que el navegador pueda comenzar a cargar imágenes y secuencias de comandos mientras se procesa y sirve el resto de la página.

¿Hay alguna manera de enjuagar el cabezal (o cualquier otra parte de la página) utilizando explícitamente ASP.NET?

Respuesta

10

Usted debe ser capaz de poner lo siguiente en su página entre el extremo de la cabeza y el comienzo de la declaración de cuerpo:

<% Response.Flush(); %> 

Sin embargo, tenga cuidado aquí en el caso de que usted está usando un script administrador o cualquier otro tipo de control que se registrará para el resultado en la sección principal del html.

+0

sí ... una vez que la respuesta ha comenzado a enrojecerse, evitará muchas cosas que deseen escribir en el objeto de respuesta. –

3

Es posible que desee establecer explícitamente Buffer = true en la etiqueta @Page en la parte superior de la página para evitar errores de lanzamiento de Response.Flush().

Cuestiones relacionadas