O ciclo de vida do ASP.NET especifica como:
ASP.NET processa páginas para gerar saída dinâmica
O aplicativo e suas páginas são instanciados e processados
ASP.NET compila páginas dinamicamente
O ciclo de vida do ASP.NET pode ser dividido em dois grupos:
Ciclo de vida do aplicativo
Ciclo de vida da página
O ciclo de vida da aplicação possui as seguintes fases:
Um usuário solicita acesso ao recurso de um aplicativo, que é uma página. O navegador envia esta solicitação ao servidor web.
Um pipeline unificado recebe a primeira solicitação e ocorrem os seguintes eventos:
Um objeto da classe ApplicationManager é criado.
Um objeto da classe HostingEnvironment é criado para fornecer o recurso de informação.
Crie um objeto de resposta. Objetos de aplicação como HttpContext, HttpRequest e HttpResponse são criados e inicializados.
Uma instância do objeto HttpApplication é criada e atribuída à solicitação.
As solicitações são tratadas pela classe HttpApplication. Diferentes eventos desencadeiam tais solicitações de processamento.
Quando uma página é solicitada, ela é carregada na memória do servidor, depois processada e veiculada no navegador. Em seguida, descarregue-o da memória. Em cada uma dessas etapas, métodos e eventos estão disponíveis e podem ser adaptados conforme a necessidade da aplicação. Em outras palavras, você pode escrever seu próprio código para substituir o código padrão.
A classe page cria uma árvore hierárquica de todos os controles da página. Todos os componentes da página, exceto as diretivas, fazem parte da árvore de controle. Você pode ver a árvore de controle adicionando trace = "true" à diretiva page. Iremos substituir as diretivas da página e rastreá-las em 'diretivas' e 'manipulação de eventos'.
Os estágios do ciclo de vida da página são:
inicialização
Instanciação de controle de página
Recuperação e manutenção do estado
Execução de código de manipulação de eventos
Exibição de página
Compreender o ciclo da página nos ajuda a escrever código para que coisas específicas possam acontecer em qualquer estágio do ciclo de vida da página. Também ajuda a escrever controles personalizados e inicializá-los no momento certo, preencher suas propriedades com dados do estado de exibição e executar código para o comportamento do controle.
A seguir estão os diferentes estágios de uma página ASP.NET:
Solicitação de página - quando o ASP.NET recebe uma solicitação de página, ele decide se deseja analisar e compilar a página ou fazer com que uma versão em cache da página responda adequadamente;
Início do ciclo de vida da página - Nesta fase são configurados os objetos de solicitação e resposta. Se for uma solicitação antiga ou um postback, a propriedade IsPostBack da página será definida como correta. A propriedade ULCulture da página também está definida.
Inicialização da página - Durante esta fase, os controles na página recebem IDs exclusivos e os temas são aplicados definindo a propriedade UniqueID. Para uma nova solicitação, os dados de postback são carregados e as propriedades de controle são restauradas para seus valores de estado de exibição.
Carregamento da página - Nesta fase, as propriedades do controle são definidas, usando os valores do estado de visualização e do estado de controle.
Validação - O método de validação do controle de validação é chamado e executado com sucesso, e a propriedade IsValid da página é definida como verdadeira.
Tratamento de eventos de postback - Se a solicitação for um postback (solicitação antiga), o manipulador de eventos relevante será chamado.
Exibição da página – Nesta fase, o estado de visualização da página e todos os controles são salvos. A página chama o método display para cada controle e a saída renderizada é gravada na classe OutputStream nas propriedades de resposta da página.
Descarregada – A página exibida é servida ao cliente e os atributos da página, como respostas e solicitações, são descarregados e todos limpos.
Em cada estágio do ciclo de vida da página, a página é acionada por algum tempo e será codificada. Um manipulador de eventos é basicamente uma função ou sub-rotina vinculada a um evento, usando propriedades declarativas ou manipuladores como OnClick.
A seguir estão os eventos do ciclo de vida da página:
PreInit - PreInit é o primeiro evento no ciclo de vida da página. Ele verifica a propriedade IsPostBack e determina se a página foi postada novamente. Ele define temas e páginas iniciais, cria controles dinâmicos e obtém e define valores de propriedades de perfil de valor. Este evento pode ser tratado substituindo o método OnPreInit ou criando um manipulador Page_PreInit.
Init - O evento Init inicializa as propriedades do controle e constrói a árvore de controle. Este evento pode ser tratado sobrecarregando o método OnInit ou criando um manipulador Page_Init.
InitComplete - O evento InitComplete permite o rastreamento do estado de visualização. Todos os controles permitem o rastreamento no estado de visualização.
LoadViewState - O evento LoadViewState permite carregar informações de estado de visualização em um controle.
LoadPostData - Durante esta fase, é processado o conteúdo de todos os campos de entrada definidos pelas tags .
PreLoad - O pré-carregamento ocorre antes que os dados de postback sejam carregados no controle. Este evento pode ser tratado sobrecarregando o método OnPreLoad ou criando um manipulador Pre_Load.
Load - O evento Load é gerado primeiro pela página e depois recursivamente para todos os controles filho. Os controles na árvore de controle são criados. Este evento pode ser tratado sobrecarregando o método OnLoad ou criando um manipulador Page_Load.
LoadComplete - O processo de carregamento é concluído, os manipuladores de eventos de controle são executados e a validação da página ocorre. Este evento pode ser tratado sobrecarregando o método OnLoad ou criando um manipulador Page_LoadComplete.
PreRender - O evento PreRender ocorre logo antes da saída ser exibida. Ao manipular esse evento, as páginas e os controles podem realizar qualquer atualização antes que a saída seja exibida.
PreRenderComplete – Quando o evento PreRender é gerado para todos os controles filhos em um loop, esse evento garante a conclusão da fase de pré-exibição.
SaveStateComplete – O estado do controle da página é salvo. As informações de personalização, estado de controle e estado de visualização são salvas.
UnLoad - A fase UnLoad é a última fase do ciclo de vida da página. Ele gera o evento UnLoad para todos os controles em um loop e, finalmente, para a própria página. Por fim, conclui a limpeza e liberação de todos os recursos e referências, como conexões de banco de dados. Este evento pode ser tratado ajustando o método OnLoad ou criando um manipulador Page_UnLoad.