El ciclo de vida de ASP.NET especifica cómo:
ASP.NET procesa páginas para generar resultados dinámicos
La aplicación y sus páginas son instanciadas y procesadas.
ASP.NET compila páginas dinámicamente
El ciclo de vida de ASP.NET se puede dividir en dos grupos:
Ciclo de vida de la aplicación
Ciclo de vida de la página
El ciclo de vida de la aplicación tiene las siguientes fases:
Un usuario solicita acceso al recurso de una aplicación, que es una página. El navegador envía esta solicitud al servidor web.
Una canalización unificada recibe la primera solicitud y ocurren los siguientes eventos:
Se crea un objeto de la clase ApplicationManager.
Se crea un objeto de la clase HostingEnvironment para proporcionar el recurso de información.
Crea un objeto de respuesta. Se crean e inicializan objetos de aplicación como HttpContext, HttpRequest y HttpResponse.
Se crea una instancia del objeto HttpApplication y se asigna a la solicitud.
Las solicitudes son manejadas por la clase HttpApplication. Diferentes eventos desencadenan dichas solicitudes de procesamiento.
Cuando se solicita una página, la página se carga en la memoria del servidor, luego se procesa y se envía al navegador. Luego descárgalo de la memoria. En cada uno de estos pasos, los métodos y eventos están disponibles y pueden adaptarse según lo necesite la aplicación. En otras palabras, puedes escribir tu propio código para reemplazar el código predeterminado.
La clase de página crea un árbol jerárquico de todos los controles de la página. Todos los componentes de la página, excepto las directivas, forman parte del árbol de control. Puede ver el árbol de control agregando trace = "true" a la directiva de la página. Anularemos las directivas de la página y las rastrearemos en 'directivas' y 'manejo de eventos'.
Las etapas del ciclo de vida de la página son:
inicialización
Creación de instancias de control de página
Recuperación y mantenimiento del estado.
Ejecución de código de manejo de eventos.
Visualización de página
Comprender el ciclo de la página nos ayuda a escribir código para que puedan suceder cosas específicas en cualquier etapa del ciclo de vida de la página. También le ayuda a escribir controles personalizados e inicializarlos en el momento adecuado, completar sus propiedades con datos del estado de vista y ejecutar código para el comportamiento del control.
Las siguientes son las diferentes etapas de una página ASP.NET:
Solicitud de página : cuando ASP.NET recibe una solicitud de página, decide si analiza y compila la página o si hace que una versión almacenada en caché de la página responda en consecuencia;
Inicio del ciclo de vida de la página : en esta fase, se configuran los objetos de solicitud y respuesta. Si se trata de una solicitud antigua o una devolución de datos, la propiedad IsPostBack de la página está configurada para corregir. La propiedad ULCulture de la página también está configurada.
Inicialización de página : durante esta fase, a los controles de la página se les asignan ID únicos y los temas se aplican configurando la propiedad UniqueID. Para una nueva solicitud, los datos de devolución se cargan y las propiedades del control se restauran a sus valores de estado de vista.
Carga de página : en esta fase, se establecen las propiedades de control utilizando el estado de vista y los valores de estado de control.
Validación : el método de validación del control de validación se llama y ejecuta correctamente, y la propiedad IsValid de la página se establece en verdadero.
Manejo de eventos de devolución de datos : si la solicitud es una devolución de datos (solicitud anterior), se llama al controlador de eventos correspondiente.
Visualización de página : en esta etapa, se guardan el estado de visualización de la página y todos los controles. La página llama al método de visualización para cada control y la salida representada se escribe en la clase OutputStream en las propiedades de respuesta de la página.
Descargado : la página mostrada se entrega al cliente y los atributos de la página, como respuestas y solicitudes, se descargan y se borran todos.
En cada etapa del ciclo de vida de la página, la página se activa durante algún tiempo y se codificará. Un controlador de eventos es básicamente una función o subrutina que está vinculada a un evento mediante propiedades declarativas o controladores como OnClick.
Los siguientes son eventos del ciclo de vida de la página:
PreInit : PreInit es el primer evento en el ciclo de vida de la página. Comprueba la propiedad IsPostBack y determina si la página tiene devolución de datos. Establece temas y páginas de inicio, crea controles dinámicos y obtiene y establece valores de propiedades de perfil. Este evento se puede controlar anulando el método OnPreInit o creando un controlador Page_PreInit.
Init : el evento Init inicializa las propiedades del control y crea el árbol de control. Este evento se puede controlar sobrecargando el método OnInit o creando un controlador Page_Init.
InitComplete : el evento InitComplete permite realizar un seguimiento del estado de la vista. Active el seguimiento del estado de visualización para todos los controles.
LoadViewState : el evento LoadViewState permite cargar información del estado de la vista en un control.
LoadPostData : durante esta fase, se procesa el contenido de todos los campos de entrada definidos por las etiquetas .
Precarga : la precarga se produce antes de que los datos de devolución se carguen en el control. Este evento se puede controlar anulando el método OnPreLoad o creando un controlador Pre_Load.
Load : el evento Load lo genera primero la página y luego de forma recursiva a todos los controles secundarios. Se crean los controles en el árbol de controles. Este evento se puede controlar sobrecargando el método OnLoad o creando un controlador Page_Load.
LoadComplete : el proceso de carga se completa, se ejecutan los controladores de eventos de control y se produce la validación de la página. Este evento se puede controlar sobrecargando el método OnLoad o creando un controlador Page_LoadComplete.
PreRender : el evento PreRender ocurre justo antes de que se muestre la salida. Al manejar este evento, las páginas y los controles pueden realizar actualizaciones antes de que se muestre el resultado.
PreRenderComplete : cuando se genera el evento PreRender para todos los controles secundarios en un bucle, este evento garantiza la finalización de la fase de visualización previa.
SaveStateComplete : se guarda el estado del control de la página. Se guarda la información de personalización, estado de control y estado de visualización.
Descargar : la fase de descarga es la última fase del ciclo de vida de la página. Genera el evento UnLoad para todos los controles en un bucle y, finalmente, para la página misma. Finalmente completa la limpieza y libera todos los recursos y referencias, como las conexiones de bases de datos. Este evento se puede controlar ajustando el método OnLoad o creando un controlador Page_UnLoad.