Pregunta

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

¿Fue útil?

Solución

Si Response.Buffer no está establecido en verdadero, obtendrá un error en 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á ver si está usando un diseño basado en tablas, ya que no se procesará en algunos navegadores hasta que se envíe la tabla completa. Esto significa que si tiene 10,000 filas, el usuario todavía lo necesitará. esperar a que se transfieran las 10,000 filas antes de que realmente las vean.

Otros consejos

Expandiendo Respuesta de Wayne : en todo caso es necesario configurar Response.Headers, no puede hacerlo después de que se haya vaciado cualquier parte de la Respuesta.

No hay problemas con el lavado de la respuesta de esta manera. Generalmente, se recomienda para un mejor rendimiento almacenar en búfer toda la página y vaciarla al cliente, pero para los scripts de ejecución prolongada, a menudo es mejor mostrar algunos datos al cliente para que el usuario vea que algo está sucediendo.

Recuerde que el vaciado manual solo tiene un efecto adecuado cuando se almacena en búfer la página desde el principio, de lo contrario IIS se vaciará automáticamente (transmitirá la página al cliente).

Debería evitar el vaciado a menudo, ya que IIS tendrá que usar recursos para vaciar la página a menudo en lugar de procesar el script. Es decir: vaciar 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 " cargando mensaje " ;, luego su proceso de informe y usted vaciar el informe, luego ejecutar una pequeña pieza de javascript para ocultar " cargando " mensaje.

De esta manera, les informará a los usuarios que algo está sucediendo para 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 el navegador que muestra qué tabla e IE parece ser el único que no muestra 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top