메뉴 건너뛰기

Dev tips

ASP.NET 페이지 요구시 처리과정

taknim 2005.09.29 01:52 조회 수 : 7697 추천:2035

http://blog.naver.com/yyk0413.do?Redirect=Log&logNo=40010502681*** 순서와 각 처리과정을 잘 파악해 두자 ***

1. Init
페이지 객체가 생성된 다음 초기화 단계.
이 단계에서는 아직 뷰스테이트의 값이 각 속성으로 복구되지 않았기 때문에 정확한 컨트롤의 속성 값을 참조할 수 없다. 이 때문에 보통 Init이벤트에서는 컨트롤의 속성에 액세스하지 않지만, 제일 처음 발생하는 이벤트이므로 초기화 작업에 해당하는 이벤트 핸들러를 매핑하거나 페이지에 포함되는 컨트롤을 동적으로 로딩하기에는 가장 적합한 장소

2. Load
ViewState의 상태설정이 완료되었으므로 페이지에 포함된 서버컨트롤의 속성에 액세스할 수 있다. VS.NET을 사용하면 자동으로 이 이벤트의 핸들러(Page_Load)생성해 주기 때문에 가장 손이 많이 가는 장소

3. PostBack이벤트 처리
버튼 클릭, 텍스트 상자의 텍스트 변경 등이 이런 종류의 이벤트를 일으킴, 페이지가 처음 요청될때(IsPostBack이 false)는 이 단계가 실행되지 않는다

4. PreRender
컨트롤의 내용을 랜더링하기 바로 전 단계, 처리 순서로 인해 발생하는 논리적 문제를 해결하기 위해 Load단계에서 처리할 작업을 여기서 대신할 수 있다

5. Render
컨트롤의 내용을 클라이언트로 출력할 HTML로 랜더링하는 메소드->실제 코딩과정 거의 없음
(※랜더링 : 컨트롤의 내용을 클라이언트로 출력할 HTML로 변환하는 과정)

6. Unload
페이지 객체가 소멸되기 전에 발생하는 이벤트이며 이 페이지가 요청된 경우는 항상 실행된다. 예를 들어, Page_Load메소드에서 Response.Redirect메소드를 이용해 다른 페이지로 이동하면 버튼 클릭 이벤트나 PreRender이벤트는 발생하지 않지만 Unload이벤트는 발생
Init단계와 마찬가지로 서버 컨트롤의 ViewState와 관련된 속성은 여기서 처리하면 안 된다.

[출처 : IT EXPERT ASP.NET 웹 프로젝트와 실전 프로그래밍]