world tutorial programacion lenguaje hello example classic asp asp-classic

asp classic - tutorial - ASP clásico: ¿cuándo usar Response.flush?



hello world asp classic (4)

Expandiendo la respuesta de Wayne : si algo necesita hacer para establecer Response.Headers, no puede hacerlo después de que alguna parte de la respuesta haya sido limpiada.

Tenemos un informe dolorosamente lento. Agregué un Response.flush y parece mucho mejor. ¿Cuáles son algunas de las advertencias sobre el uso de este método?


No hay problemas para descargar la respuesta de esta manera. En general, se recomienda un mejor rendimiento para almacenar toda la página y descargarla al cliente, pero para las secuencias de comandos de larga ejecución, a menudo es mejor mostrar algunos datos al cliente para que el usuario vea que algo está sucediendo.

Recuerde que el enjuague manual solo tiene un efecto apropiado al almacenar en búfer la página desde el inicio; de lo contrario, IIS se vaciará automáticamente (transmitirá la página al cliente).

Debería evitar el enrojecimiento a menudo ya que IIS tendrá que usar recursos en el vaciado frecuente de la página en lugar de procesar el script. Es decir: enjuague cada 50 filas en lugar de cada fila.


Response.flush podría ser útil para enviar al navegador el encabezado del informe ... luego mostrar un "mensaje de carga", luego el proceso de informe y vaciar el informe, luego ejecutar una pequeña porción de javascript para ocultar el mensaje de "carga".

De esta forma, les informará a sus usuarios que algo está sucediendo, de modo que no presionen STOP BACK o simplemente cierren la ventana, ya que de lo contrario podrían verse tentados.

Además, he jugado mucho con qué navegador representa qué tabla y IE parece ser el único que no representa una tabla a menos que se reciba la etiqueta. Lo que significa que todas las filas podrían aparecer gradualmente en otro navegador pero no en IE.


Si Response.Buffer no está configurado como verdadero, obtendrá un error de tiempo de ejecución. Además, si se llama al método Flush en una página ASP, el servidor no respeta las solicitudes Keep-Alive para esa página.

También querrá saber si está usando un diseño basado en tablas, ya que no se procesará en algunos navegadores hasta que se envíe toda la tabla ... lo que significa que si tiene 10,000 filas, el usuario aún tendrá que esperar. todas las 10,000 filas para transferir antes de que realmente las vean.