Pergunta

Temos um report.I dolorosamente lento acrescentou um Response.Flush e parece muito melhor. Quais são algumas das dicas de uso deste método.

Foi útil?

Solução

Se Response.Buffer não está definido como verdadeiro, então você vai receber um erro de tempo de execução. Além disso, se o método Flush é chamado em uma página ASP, o servidor não aceita as solicitações de keep-alive para essa página.

Você também vai querer olhar para fora se você estiver usando um projeto baseado em tabela, uma vez que não irá processar em alguns navegadores até que todo o quadro é enviado .. ou seja, se você tem 10.000 linhas, o usuário ainda precisa a espera para todas as 10.000 linhas a transferência antes que eles realmente vê-los.

Outras dicas

de Wayne resposta : se qualquer coisa que você fazer necessidades para Response.Headers do jogo, você não pode fazê-lo depois de qualquer parte da resposta tem sido Flushed.

Não há problemas com a lavagem da resposta como esta. É geralmente recomendado para um melhor desempenho para tamponar a página inteira e o rubor-lo para o cliente, mas por muito tempo a execução de scripts muitas vezes é melhor para exibir alguns dados para o cliente para que o usuário vê algo está acontecendo.

Lembre-se que a lavagem manualmente apenas ter um bom efeito quando o buffer na página desde o início, caso contrário, o IIS irá liberar automaticamente (transmitir a página para o cliente).

Você deve evitar a lavagem de frequentemente como IIS, em seguida, terá de usar recursos no rubor da página frequentemente em vez de processar o script. I.e .: liberar a cada 50 linhas, em vez de linha nunca.

Response.Flush poderia ser útil para enviar para o navegador cabeçalho do relatório .. então mostrar uma "mensagem de carregamento", então o seu processo de relatório e você liberar o relatório, em seguida, executar um pequeno pedaço de javascript para esconder o "carregamento" mensagem.

Desta forma, você irá permitir que seus usuários saibam que algo está hapenning que eles não vão pressionar STOP BACK ou apenas perto da janela, pois caso contrário pode ser tentado.

Além disso, eu joguei muito com o que o browser tornar o mesa e IE parece ser o único que não torna uma mesa a menos que o tag é recebida. O que significa que todas as linhas poderiam aparece gradualmente em outro navegador, mas não no IE.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top