728x90
ASP.NET 페이지 생명 주기
lIfe Cycle (초기화, 컨트롤 인스턴스화, 상태 복원 및 유지 관리, 이벤트 처리기 실행)
ASP.NET의 페이지가 실행되면 일련의 처리 단계를 수행하는 생명 주기를 거친다. 사용자 지정 컨트롤을 개발하는 경우 컨트롤을 올바르게 초기화하고 뷰 상태 데이터로 컨트롤 속성을 채우고 컨트롤 동작 코드를 실행하려면 페이지 수명 주기를 확실하게 알아야 한다.
각 Page Event 마다 적절한 로직을 사용하여 원하는 결과를 낼 수 있게 하기위해 사용한다. 예를들어 공통적으로 상속되는 BasePage와 OnPreRender 이벤트에 공통으로 사용되는 변수 ( html,css,js ) 등의 불필요한 중복을 없앨 수도 있다.
수명 주기의 일부는 페이지가 포스트백으로 처리 될 때에만 발생한다. 부분 페이지 포스트백 UpdatePanel 컨트롤을 사용할 떄와 같이 전체 페이지 포스트백 동안도 동일하다.
단계 설명
페이지 요청 | 페이지 생명 주기가 시작되기 전에 발생한다. 페이지를 요청하면 ASP.NET에서는 페이지를 구문 분석하고 컴파일하여 페이지 주기를 시작할지의 여부 혹은 페이지를 실행치 않고 캐시된 버전의 페이지를 응답으로 보낼 수 있는지 확인하고 결정한다. |
시작 | 시작 단계에서 Request, Respone 같은 페이지 속성이 설정된다. Postback의 여부를 확인하고 IsPostback 속성을 설정한다. |
초기화 | 페이지 초기화 단계에서는 컨트롤을 사용 할 수 있고, 각 컨트롤의 UniqueID 속성이 설정된다. 해당 요청이 Postback인 경우에는 데이터가 아직 로드되지 않았고 컨트롤 속성 값이 뷰 상태의 값으로 복원되지 않은 상태이다. |
로드 | 로드 단계에서는 현재 요청이 PostBack인 경우 View 상태 및 컨트롤 상태에서 복구된 정보와 함께 컨트롤 속성이 로드 된다. |
포스트백 이벤트 처리 | Request가 PostBack인 경우 컨트롤 이벤트 처리기가 호출된다. 이후 모든 유효성 검사기 컨트롤의 Validate 메서드가 호출되어 각 유효성 검사기 컨트롤 미 페리지에 IsValid 속성을 설정한다, |
렌더링 | 렌더링 직전, 페이지와 모든 컨트롤에 대한 View 상태가 저장된다. 단계를 진행하는 동안, 페이지에서 각 컨트롤에 대한 Render 메서드를 호출하여 페이지에 대한 Response 속성의 OutputStream 개체에 출력하는 텍스트 기록기를 제공한다. |
언로드 | 페이지가 완전히 렌더링 되어서 클라이언트에 전달되고 취소할 준비가 됐다면 Unload 이벤트가 발생한다. 이 단계에서는 Response 및 Request 같은 페이지 속성이 언로드 되고 정리 작업이 실행된다. |
728x90
'C#' 카테고리의 다른 글
C# Thread, ThreadPool :: 비동기 프로그래밍 (0) | 2023.04.11 |
---|---|
ASP.NET - Postback, Viewstate (0) | 2022.12.20 |
ASP.NET - MapPath, Application, Session (0) | 2022.12.13 |
C# Asp .net Web Form 학급 관리 프로젝트 - 02. (0) | 2022.12.07 |
C# IComarable 인터페이스 (0) | 2022.12.02 |