공지

ASP.NET

걷는이 2009. 1. 15. 01:59

ASP.NET


 

ASP Control lifetime

ASP.NET 페이지 요청시 처리 과정 (http://blog.naver.com/ngmaster/120039945747)

1. Init (초기화)

    - 페이지 개체 생성 직후 단계입니다.

    - ViewState값이 복구 전이기 때문에 정확한 컨트롤의 속성값은 참조할 수 없습니다.

    - 이벤트 매핑 또는 컨트롤 동적 처리 등등을 처리할 수 있습니다.

 

2. LoadViewState (뷰 상태 로드)

    - PostBack 요청에 의한 ViewState 값을 페이지 개체에 로드시킵니다.

    - PostBack이 발생하지 않으면 이 이벤트도 발생하지 않습니다.

 

3. Load (로드)

    - 웹폼 로드 이벤트로 초기 작업이 가장 많은 위치입니다.

 

4. RaisePostDataChangedEvent (PostBack 변경 알림 보내기)

    - 현재 및 이전 게시 간의 상태 변경에 응답하여 변경 이벤트가 발생합니다.

    - 게시 변경 이벤트를 발생시키는 컨트롤만 이 단계를 수행합니다. (button, textBox등등)

 

5. RaisePostBackEvent (PostBack 이벤트 처리)

    - 사용자가 발생시킨 이벤트 처리 단계입니다.

    - 페이지가 처음 요청될 때는 이 단계를 생략합니다. (IsPostBack이 false일때)

    - 게시 변경 이벤트를 발생시키는 컨트롤만 이 단계를 수행합니다. (button, textBox등등)

 

6. PreRender (사전 렌더링)

    - 컨트롤을 랜더링하기 바로 전 단계입니다.

    - 처리 순서로 인해 발생하는 논리 문제를 해결하기 위해 Load에서 해야할 처리를 여기서 대신 처리할 수 있습니다.

 

7. SaveViewState (뷰 상태 저장)

    - 현재 페이지 개체의 각 컨트롤의 내용을 ViewState로 저장합니다.

 

8. Render (렌더링)

    - 현재 페이지 개체의 각 컨트롤의 내용을 렌더링해서 출력 버퍼에 기록합니다.

    - 서버 컨트롤을 출력할 HTML로 랜더링 하는 단계입니다.

 

9. Dispose (삭제)

    - 컨트롤을 삭제하기 전에 최종 정리를 수행합니다.

    - 데이터베이스 연결과 같은 비용이 많이 드는 리소스에 대한 참조는 이 단계에서 해제되어야 합니다.

 

10. UnLoad (언로드)

    - 컨트롤을 삭제하기 전에 최종 정리를 수행합니다.

    - CleanUp Code 처리를 하며 리소스를 반환합니다.

    - ViewState 처리는 여기서 하지 않습니다.

    - 일반적으로 컨트롤을 만든 이는 Dispose에서 정리를 수행하므로 이 이벤트를 처리하지 않습니다.




  • !PostBack
    1. Page_init
    2. Page_Load
    3. Page_PreRender
    4. Page_SaveStateComplete
    5. Page_Render ( before base.Render()
  • PostBack
    1. Page_init
    2. Page_Load
    3. Page_PreRender
    4. Page_Load
    5. Button1_Click (PostBack event)
    6. Page_PreRender
    7. Page_SaveStateComplete
    8. Page_Render ( before base.Render()
  • http://blog.naver.com/ngmaster/120039984892