Se você conhece Response.Flush e Response.Clear, não precisa esperar assim. Cada vez que uma página HTML é gerada, Response.write é usado para retornar imediatamente uma mensagem indicando que o registro do banco de dados gerou HTML. Quando um programador escreve uma página estática HTML gerada a partir de uma página ASP, se um grande número de páginas for gerado ao mesmo tempo, ele deve ter encontrado um longo processo de espera onde a barra de progresso na parte inferior do navegador mostra 3%, 6 %, 10%, etc. que aumentam lentamente. Durante esse processo de espera, você não sabe qual registro foi gerado na página, então só pode esperar de olhos bem abertos.
Se você conhece Response.Flush e Response.Clear, não precisa esperar assim. Cada vez que uma página HTML é gerada, Response.write é usado para retornar imediatamente uma mensagem indicando que o registro do banco de dados gerou HTML.
Dessa forma, quando um grande número de páginas é gerado ao mesmo tempo, você não está mais sozinho olhando para uma página em branco, mas apenas atordoado com a barra de progresso que muda lentamente na parte inferior do navegador. o registro do banco de dados foi gerado Mesmo que haja um acidente, como travamento, queda de energia, etc., você saberá a data em que a próxima geração deverá ser gravada e reiniciada para gerar o HTML. Não é ótimo? Esta é uma barra de progresso e mais específica.
Haha, não se preocupe, vamos primeiro ver o significado de Response.Flush e Response.Clear.
O método Flush do objeto Response envia imediatamente a saída no buffer. Este método causará um erro em tempo de execução se Response.Buffer não estiver definido como TRUE. Sintaxe: Response.Flush Nota: Se o método Flush for chamado em uma página ASP, o servidor responderá à solicitação keep-alive na página. Aplicado a objetos Response.
Em relação ao Buffer, aqui está uma introdução. Buffer é traduzido literalmente do inglês como zona tampão. Aqui o chamamos de buffer porque não é apenas um substantivo, mas também um verbo.
O buffer é um local onde uma série de dados é armazenada. Os dados obtidos pelo cliente podem ser gerados diretamente do resultado da execução do programa ou do buffer. Mas há uma diferença de velocidade entre esses dois métodos: na web, quando um programa ASP não é solicitado muitas vezes, basicamente não há diferença entre os dois, pelo menos não podemos sentir. Mas quando muitas pessoas solicitam um programa asp, a velocidade é diferente. Se não houver buffer, o resultado obtido por cada cliente que solicita o programa ASP é o resultado obtido ao executar o programa ASP uma vez. Se o programa ASP for armazenado em buffer antecipadamente, o resultado obtido por cada cliente será o resultado armazenado em buffer. O resultado da área não é o resultado da execução do programa uma vez. Por exemplo, 1.000 usuários acessam uma página ASP ao mesmo tempo. Se o programa ASP não estiver armazenado em buffer, o programa será executado mil vezes, o que aumentará a carga no servidor e fará com que o cliente abra a página mais lentamente; o programa ASP é armazenado em buffer, então o resultado será diferente. Cada cliente obtém dados diretamente do buffer, e o servidor não aumentará o número de execuções do programa devido ao aumento do acesso, portanto a velocidade com que o cliente abre a página será será. mais lento do que no caso anterior. Este é o benefício do Buffer.
Em relação a Response.clear, o método Clear exclui toda a saída HTML do buffer. Mas o método Clear exclui apenas o corpo da resposta e não os cabeçalhos da resposta. Você pode usar esse método para lidar com condições de erro. Observe que este método causará um erro de tempo de execução se Response.Buffer não estiver definido como TRUE. Sintaxe: Response.Clear aplicado a objetos Response.
Bem, se você deseja obter o efeito de saída imediata, basta adicionar Response.Flush e Response.Clear após as informações do prompt de saída desejada no corpo do loop. como:
<%
para i = 1 a 2.000
para i1=1 a 3000
''Loop vazio, estendendo cada tempo de execução
próximo
Resposta.escreva i&)
Resposta.Flush
Resposta.Limpar
próximo
%>
Depois de executar a instrução asp acima, você descobrirá que a saída será emitida uma por uma. Se você executá-la uma vez, ela será emitida uma vez.
Mas vi alguém na Internet dizendo isso muitas vezes, descobrimos que mesmo usando Response.Flush(), a informação anterior não é enviada ao cliente para exibição. Ainda somos apresentados a uma tela branca. Após repetidos testes, cheguei à conclusão: o conteúdo do flush deve ter pelo menos 256 bytes. Ou seja, somente se a compilação gerar pelo menos 256 bytes de dados, as informações poderão ser enviadas ao cliente e exibidas após a execução de Response.Flush().
É estranho que a declaração que forneci acima realmente atinja o efeito de exibir um por um e não produza 256 bytes antecipadamente. Você pode salvar a declaração acima como o Bloco de Notas e executá-la para ver se o efeito é exibido linha por linha. As opiniões listadas por mim representam apenas opiniões pessoais da flymorn e não podem ser utilizadas para outros fins.
Se você realmente precisar gerar 256 bytes antecipadamente, poderá fazer o seguinte:
<%
dim liji
para i = 1 a 256
liji=liji&<!--Primeiro gere 256 caracteres-WWW.PIAOYI.ORG-->
se len(liji)>=256 então saia para
próximo
%>
Se você tiver opiniões diferentes ou resultados de testes diferentes, sinta-se à vontade para discutir isso comigo.