Si conoce Response.Flush y Response.Clear, entonces no tiene que esperar así. Cada vez que se genera una página HTML, se utiliza Response.write para devolver inmediatamente un mensaje que indica que el registro de la base de datos ha generado HTML. Cuando un programador escribe una página estática HTML generada a partir de una página ASP, si se genera una gran cantidad de páginas al mismo tiempo, debe haber encontrado un largo proceso de espera con la barra de progreso debajo del navegador mostrando 3%, 6%, 10 %, etc. que aumenta lentamente. Durante este proceso de espera, no sabes qué registro se ha generado en la página, por lo que sólo puedes esperar con los ojos bien abiertos.
Si conoce Response.Flush y Response.Clear, entonces no tiene que esperar así. Cada vez que se genera una página HTML, se utiliza Response.write para devolver inmediatamente un mensaje que indica que el registro de la base de datos ha generado HTML.
De esta manera, cuando se genera una gran cantidad de páginas al mismo tiempo, ya no estará solo mirando una página en blanco, sino simplemente una barra de progreso que cambia lentamente en la parte inferior del navegador. Siempre podrá saber qué registro de la base de datos se ha generado. generado Incluso si hay un accidente, como un accidente, un corte de energía, etc., sabrá la fecha en la que se debe registrar la próxima generación y reiniciar para generar HTML. ¿No es genial? Esta es una barra de progreso y es más específica.
Jaja, no te preocupes, veamos primero el significado de Response.Flush y Response.Clear.
El método Flush del objeto Response envía inmediatamente la salida al búfer. Este método provocará un error de tiempo de ejecución si Response.Buffer no está configurado en TRUE. Sintaxis: Response.Flush; Nota: Si se llama al método Flush en una página ASP, el servidor responderá a la solicitud de mantenimiento de actividad en la página. Aplicado a objetos de respuesta.
Con respecto a Buffer, aquí hay una introducción. Buffer se traduce literalmente del inglés como zona de amortiguamiento. Aquí lo llamamos buffer porque no es solo un sustantivo, sino también un verbo.
El búfer es un lugar donde se almacena una serie de datos. Los datos obtenidos por el cliente se pueden generar directamente desde el resultado de la ejecución del programa o desde el búfer. Pero hay una diferencia de velocidad entre estos dos métodos: en la web, cuando un programa ASP no se solicita muchas veces, básicamente no hay diferencia entre los dos, al menos no podemos sentirlo. Pero cuando muchas personas solicitan un programa asp, la velocidad es diferente. Si no hay búfer, entonces el resultado obtenido por cada cliente que solicita el programa ASP es el resultado obtenido al ejecutar el programa ASP una vez. Si el programa ASP se almacena en el búfer por adelantado, el resultado obtenido por cada cliente es el resultado almacenado en el búfer. El resultado del área no es el resultado de ejecutar el programa una vez. Por ejemplo, 1000 usuarios acceden a una página ASP al mismo tiempo. Si el programa ASP no está almacenado en el búfer, el programa se ejecutará mil veces, lo que aumentará la carga en el servidor y hará que el cliente abra la página más lentamente; Si el programa ASP está almacenado en el búfer, el resultado será diferente. Cada cliente obtendrá datos directamente del búfer y el servidor no aumentará el número de ejecuciones del programa debido al mayor acceso, por lo que la velocidad a la que el cliente abre la página será. más lento que en el caso anterior rápido. Este es el beneficio de Buffer.
Con respecto a Response.clear, el método Clear elimina toda la salida HTML en el búfer. Pero el método Clear solo elimina el cuerpo de la respuesta y no los encabezados de la respuesta. Puede utilizar este método para manejar condiciones de error. Tenga en cuenta que este método provocará un error de tiempo de ejecución si Response.Buffer no está configurado en TRUE. Sintaxis: Response.Clear; aplicado a objetos de respuesta.
Bueno, si desea lograr el efecto de salida inmediata, simplemente agregue Response.Flush y Response.Clear después de la información de solicitud de salida deseada en el cuerpo del bucle. como:
<%
para i=1 a 2000
para i1=1 a 3000
'' Bucle vacío, extendiendo cada tiempo de ejecución.
próximo
Respuesta.escribir i&)
Respuesta.Flush
Respuesta.Borrar
próximo
%>
Después de ejecutar la instrucción asp anterior, encontrará que la salida se genera una por una. Si la ejecuta una vez, se generará una vez.
Pero vi a alguien en Internet decir que muchas veces encontramos que incluso si usamos Response.Flush(), la información anterior no se envía al cliente para su visualización. Todavía se nos presenta una pantalla blanca. Después de repetidas pruebas, llegué a la conclusión: el contenido de descarga debe tener al menos 256 bytes. Es decir, solo si la compilación genera al menos 256 bytes de datos, la información se puede enviar al cliente y mostrarse después de ejecutar Response.Flush().
Es extraño que la declaración que proporcioné anteriormente realmente logra el efecto de mostrar uno por uno y no genera 256 bytes por adelantado. Puede guardar la declaración anterior como Bloc de notas y ejecutarla para ver, el efecto se muestra línea por línea. Las opiniones que enumero solo representan opiniones personales de Flymorn y no pueden usarse para otros fines.
Si realmente necesita generar 256 bytes de antemano, puede hacer esto:
<%
liji tenue
para i=1 a 256
liji=liji&<!--Primero genera 256 caracteres-WWW.PIAOYI.ORG-->
si len(liji)>=256 entonces salga para
próximo
%>
Si tiene puntos de vista diferentes o resultados de pruebas diferentes, no dude en comentarlo conmigo.