.NET 생명주기

개발자 | 2008. 4. 30. 11:02

이벤트 설명
Page_Init 가장 먼저 발생하는 이벤트이며, 이 이벤트 동안에 컨트롤들의 값을 초기화하거나, 이벤트들을 매핑(연결)할 수 있다.
Page_Load 페이지가 실질적으로 로드되는 시점에 발생하는 이벤트이다. 이 이벤트 동안에 ASP.NET 페이지를 만들며, 이벤트에 응답하는 작업들을 수행할 수 있다. 이 이벤트가 발생하기 전에 ViewState를 사용하여 서버 컨트롤들의 상태가 복원된다. 또한, 이 이벤트 동안에 IsPostBack 속성을 사용하여 페이지가 처음 로드되는 것인지 포스트백 중인지를 알아낼 수 있으며 그에 따라 적절한 작업을 수행할 수 있다. 주로, 페이지의 첫 로드 시에 데이터 바인딩 작업을 수행한다.
Page_DataBind 이는 페이지에서 DataBind 메서드가 호출될 때 발생하는 이벤트이다.
Page_PreRender 이 이벤트는 ViewState 상태가 저장되기 전, 컨트롤이 렌더링되기 바로 직전에 발생하는 이벤트이다. 이 이벤트에 코드를 작성하는 경우는 드문 편이지만, 이 이벤트를 사용하여 마지막 세부 작업을 수행할 수 있다. (이 부분이 중요합니다. 기존 서적은 이 부분에서 작업하는 것이 드물다고 나와있지만, 바로 이 이벤트를 적절히 사용하면 상당히 잘 정돈된 페이지의 구성이 가능하게 된답니다)
Page_Unload 페이지가 렌더링을 끝마친 뒤에, 모든 작업을 마무리할 때 발생하는 이벤트이다. 이 이벤트는 최종 정리 작업을 수행하기에 좋은 장소이기에, 데이터베이스에 대한 연결을 닫는 작업이나, 개체의 해제, 열려져 있는 파일의 닫기 등의 작업이 이곳에서 수행된다. 중요한 것은 이 이벤트에서는 화면에 출력하는 어떠한 코드도 동작하지 않는다는 것이다. 그러한 작업은 이 이벤트 이전에 모두 수행해야 한다.

자. 이것이 Page의 이벤트들이 동작하는 흐름이랍니다. 멋지죠?

일반적인 경우는 이 이벤트들 중에서 Page_Load 를 제외하고는 그리 사용할 일이 없다는 것도 이미 여러분은 아시고 계실 겁니다. 여러분은 일반적으로 변수 초기화를 이 이벤트 내에서 하고 있을 것이며, DataGrid 로의 데이터 바인딩도 주로 이 장소에서 하시고는 할 것입니다. 그리고, 웹 폼 내에 존재하는 BUtton이나 TextBox 등의 컨트롤에서 발생한 이벤트들은 Page_Load 이벤트가 일어난 다음에 발생한다는 다음 사실도 알고 계실 겁니다. 그렇죠?

하지만, 위의 표는 단지 Page의 대표적인 이벤트만을 소개한 것에 불과하지요. 실제로는 웹 폼의 전체적인 이벤트 처리 프로세스는 다음과 같은 흐름을 가지고 있답니다. 물론, 아래의 그림에서 표현한 모든 것을 기억하고 있을 필요는 없지만, 나중에 여러분의 내공이 상승한다면 이 그림은 아마도 상당히 유용할 것이라 생각합니다.

 


http://www.taeyo.net/lecture/NET/Performance01.asp

'개발자' 카테고리의 다른 글

ASP 에서 OCX 실행  (0) 2008.04.30
웹페이지(HTML)에서 직접 실행파일(exe) 실행시키기  (0) 2008.04.30
JSP 교육실습 10일차  (0) 2007.12.21
Servlet API  (0) 2007.12.18
Servlet 설정 --> 중요!!!  (0) 2007.12.17
,