Pergunta

Eu estou fazendo uma página ASP.NET Web que gera páginas de SQL quando eles não estão em cache. Seu tempo de carregamento pode estar entre 300 ms para 1,5 segundo (Sem correção você respostas de banco de dados, por favor).

Eu pessoalmente acho que esses valores sejam muito tempo, e estava à procura de uma solução que permite-me para informar o usuário que a página que está visitando vai exigir um pouco de tempo para carregar.

Eu estava procurando por uma solução que poderia ser através da função Page_Load, se isso é possível. A solução perfeita para mim, neste caso, está mostrando que o usuário seja um GIF animado ou um texto dizendo a página está sendo gerado.

Em uma nota lateral eu venho de programação na sua maioria aplicações de Windows.

Foi útil?

Solução

Aqui está um exemplo de como usar o objeto de resposta para o conteúdo flush para o navegador e continuar o processamento:

using System;
using System.Web.UI;
using System.Threading;

public partial class _Default : Page
{
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        Response.Write("<h1>please wait...</h1>");
        Response.Flush();

        // simulate load time
        Thread.Sleep(2000);

        Response.Write("<h1>finished</h1>");
    }
}

Outras dicas

Você pode começar a processar a página, e liberar o buffer chamando Response.Flush (). Que irá enviar o conteúdo do buffer para o navegador. Em seguida, terá de desligar o gráfico uma vez que sua carregado.

Outra opção seria a utilização de AJAX para carregar as imagens, para que você carregar a página inteira, sem as imagens, e depois iniate outra solicitação para obter as imagens. Isso pode ser mais fácil do que tentar processar uma página parcial.

1,5 segundos não é ruim para uma página para carregar a certeza de que vale a pena o seu tempo e esforço?

Você vai querer primeira saída do gráfico de carga e, em seguida, liberar o buffer de saída para que o conteúdo até agora é enviado para o navegador do usuário usando Response.Flush().

Quando você saída o resto do conteúdo, você precisa ter um pouco de javascript lá para remover os primeiros elementos da página enviados assim que o gráfico de carga vai embora.

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