Asp.Net 에서 WebForm 의 생명 주 기 를 깊이 이해 합 니 다.

머리말
본 고 는 주로 Asp.Net 에서 WebForm 의 생명주기 에 관 한 내용 을 소개 하고 여러분 이 참고 하여 공부 할 수 있 도록 공유 합 니 다.다음은 상세 한 소 개 를 살 펴 보 겠 습 니 다.
1.asp.Net 페이지 수명 주기 개념
브 라 우 저 주소 표시 줄 에 웹 주 소 를 입력 하고 차 로 돌아 가 페이지 를 볼 때 서버 쪽 IIS)에 request 요청 을 보 내 면 서버 는 보 낸 요청 페이지 를 판단 하고 TTP 페이지 처리 프로그램 류 를 완전히 식별 한 후 ASP.NET 이 실 행 될 때 처리 프로그램의 ProcessRequest 방법 으로 요청 을 처리 하고 페이지 대상 을 만 듭 니 다.일반적으로 페이지 클래스 가 제공 하기 때문에 이 방법의 실현 을 변경 할 필요 가 없습니다.다음 페이지 대상 을 만 드 는 ProcessRequest 방법 으로 페이지 는 각 단 계 를 거 쳤 습 니 다.보기 상태 정보 초기 화,재 송 데이터,페이지 를 불 러 오 는 사용자 코드,재 송 서버 엔 드 이 벤트 를 실행 합 니 다.그 후에 페이지 는 디 스 플레이 모드 에 들 어 갑 니 다.업 데 이 트 된 보기 상 태 를 수집 하고 HTML 코드 를 생 성 한 다음 에 코드 를 출력 콘 솔 에 보 냅 니 다.마지막 으로 페이지 를 마 운 트 해제 하고 요청 이 완료 되 었 다 고 생각 합 니 다.그 중에서 페이지 대상 ProcessRequest 방법 으로 완 성 된 이 일련의 사건 의 처리 과정 은 바로 Asp.Net 페이지 의 생명 주기 입 니 다.
2.왜 Asp.Net 페이지 의 생명 주 기 를 알 아야 합 니까?
Asp.Net 페이지 의 라 이 프 사이클 을 알 기 때문에 개발 자 들 이 라 이 프 사이클 의 적당 한 단계 에서 프로그램 을 작성 하여 기대 하 는 효 과 를 얻 을 수 있 습 니 다.또한 사용자 정의 컨트롤 을 개발 하려 면 페이지 의 라 이 프 사이클 을 숙지 하여 컨트롤 의 초기 화 를 정확하게 진행 하고 보기 상태 데이터 로 컨트롤 의 속성 을 채 우 며 모든 컨트롤 행동 코드 를 실행 해 야 합 니 다.창설 부터 마지막 마 운 트 해제 까지 일련의 사건 에 익숙해 져 야 개발 이 잘 되 고 구름 속 의 느낌 이 들 지 않 는 다 는 것 이다.
3.생명주기 단계
      1.요청 페이지:페이지 요청 은 페이지 수명 주기 가 시작 되 기 전에 발생 합 니 다.
      2.시작:시작 단계 에서 Request 와 Response 와 같은 페이지 속성 을 설정 합 니 다.이 단계 에서 페이지 는 요청 이 리 턴 요청 인지 새 요청 인지 확인 하고 IsPost Back 속성 을 설정 합 니 다.
      3.페이지 초기 화:페이지 초기 화 기간 에 페이지 의 컨트롤 을 사용 할 수 있 고 모든 컨트롤 의 UniqueID 속성 을 설정 할 수 있 습 니 다.현재 요청 이 리 턴 요청 이 라면 리 턴 데 이 터 를 불 러 오지 않 았 고 컨트롤 속성 값 은 보기 상태의 값 으로 복원 되 지 않 았 습 니 다.
      4.페이지 불 러 오기:불 러 오 는 동안 현재 요청 이 리 턴 요청 이 라면 보기 상태 와 컨트롤 상태 에서 복 구 된 정보 로 컨트롤 속성 을 불 러 옵 니 다.
      5.검증:검증 기간 에 모든 검증 프로그램 컨트롤 의 Validate 방법 을 호출 합 니 다.이 방법 은 각 검증 프로그램 컨트롤 과 페이지 의 IsValid 속성 을 설정 합 니 다.
      6.리 턴 이벤트 처리:리 턴 요청 이 라면 모든 이벤트 처리 프로그램 을 호출 합 니 다.
      7.페이지 표시:페이지 가 나타 나 는 동안 보기 상 태 는 페이지 에 저 장 됩 니 다.그리고 페이지 는 각 컨트롤 을 호출 하여 페이지 의 Response 속성 에 대한 OutputStream 을 제공 합 니 다.
      8.마 운 트 해제 페이지:페이지 를 완전히 표시 하고 페이지 를 클 라 이언 트 에 보 내 며 버 리 려 고 할 때 마 운 트 해제 로 호출 합 니 다.이 때,페이지 속성(예:Response 와 Request)을 마 운 트 해제 하고 청 소 를 실행 합 니 다.
4.생명주기 의 사건
1、PreInit
이 이 벤트 를 사용 하여 다음 작업 을 수행 합 니 다:
IsPost Back 속성 을 확인 하여 이 페이지 를 처음 처리 하 는 지 확인 합 니 다.
동적 컨트롤 을 만 들 거나 다시 만 듭 니 다.
동적 설정 메 인 제어 페이지.
동적 설정 Theme 속성.
프로필 속성 값 을 읽 거나 설정 합 니 다.
주의:
요청 이 리 턴 요청 이 라면 컨트롤 의 값 은 보기 상태 에서 복원 되 지 않 았 습 니 다.이 단계 에서 컨트롤 속성 을 설정 하면 다음 이벤트 에서 값 을 다시 쓸 수 있 습 니 다.
2、Init
모든 컨트롤 이 초기 화 되 었 고 모든 외관 설정 이 적용 되 어 발생 합 니 다.이 이 벤트 를 사용 하여 컨트롤 속성 을 읽 거나 초기 화 합 니 다.
3、InitComplete
페이지 대상 에서 발생 합 니 다.이 이 벤트 를 사용 하여 초기 화 작업 을 먼저 수행 하 라 는 작업 을 처리 합 니 다.
4、PreLoad
Load 이벤트 전에 페이지 나 컨트롤 을 처리 해 야 한다 면 이 이 벤트 를 사용 하 십시오.
Page 에서 이 사건 을 일 으 키 면 자신 과 모든 컨트롤 에 보기 상 태 를 불 러 오고 Request 인 스 턴 스 에 포 함 된 모든 리 턴 데 이 터 를 처리 합 니 다.
5、Load
Page 는 Page 에서 OnLoad 이벤트 방법 을 호출 한 다음 하위 컨트롤 마다 같은 동작 을 반복 합 니 다.이 페이지 와 모든 컨트롤 을 불 러 올 때 까지 반복 합 니 다.
OnLoad 이벤트 방법 으로 컨트롤 의 속성 을 설정 하고 데이터베이스 연결 을 만 듭 니 다.
6.컨트롤 이벤트
Button 컨트롤 의 Click 이벤트 나 TextBox 컨트롤 의 TextChanged 이벤트 와 같은 특정 컨트롤 이 벤트 를 처리 합 니 다.
주의:
리 턴 요청 에서 페이지 에 인증 프로그램 컨트롤 이 포함 되 어 있 으 면 모든 처 리 를 수행 하기 전에 Page 와 각 인증 컨트롤 의 IsValid 속성 을 확인 하 십시오.
7、LoadComplete
페이지 에 있 는 모든 다른 컨트롤 을 불 러 올 작업 에 이 이 벤트 를 사용 합 니 다.
8、PreRender
이 사건 이 발생 하기 전에:
Page 대상 은 모든 컨트롤 과 페이지 Ensure Child Controls 를 대상 으로 합 니 다.
DataSourceID 속성 을 설정 한 모든 데이터 바 인 딩 컨트롤 은 DataBind 방법 을 호출 합 니 다.더 많은 정보 에 대해 서 는 아래 데이터 바 인 딩 컨트롤 의 데이터 바 인 딩 사건 을 참조 하 십시오.
페이지 의 모든 컨트롤 에서 PreRender 이벤트 가 발생 합 니 다.이 이 벤트 를 사용 하여 페이지 나 컨트롤 의 내용 을 마지막 으로 변경 합 니 다.
9、SaveStateComplete
이 사건 이 발생 하기 전에 페이지 와 모든 컨트롤 에 ViewState 를 저장 하 였 습 니 다.페이지 나 컨트롤 에 대한 변경 사항 을 무시 합 니 다.
이 이 벤트 를 사용 하여 다음 조건 을 만족 시 키 는 작업 을 수행 합 니 다.보기 상 태 를 저장 하 였 으 나 컨트롤 을 변경 하지 않 았 습 니 다.
10、Render
이것 은 사건 이 아니다.이 단계 에서 페이지 대상 은 모든 컨트롤 에서 이 방법 을 호출 합 니 다.모든 ASP.NET 웹 서버 컨트롤 은 브 라 우 저 에 보 내 는 컨트롤 표 시 를 쓰 는 Render 방법 이 있 습 니 다.
사용자 정의 컨트롤 을 만 들 려 면 출력 컨트롤 의 표 시 를 위해 이 방법 을 다시 써 야 합 니 다.단,사용자 정의 컨트롤 이 표준 ASP.NET 웹 서버 컨트롤 만 합 쳐 지고 사용자 정의 태그 가 합 쳐 지지 않 으 면 Render 방법 을 다시 쓸 필요 가 없습니다.더 많은 정 보 는 사용자 정의 ASP.NET 서버 컨트롤 개발 을 참조 하 십시오.
사용자 컨트롤(.ascx 파일)이 자동 으로 합 쳐 지기 때문에 코드 에 이 컨트롤 을 표시 할 필요 가 없습니다.
11、Unload
이 사건 은 우선 모든 컨트롤 에 대해 발생 한 다음 에 이 페이지 에 대해 발생 한다.컨트롤 에서 이 이 벤트 를 사용 하여 특정 컨트롤 을 마지막 으로 정리 합 니 다.예 를 들 어 컨트롤 의 특정 데이터베이스 연결 을 닫 습 니 다.
페이지 자체 에 대해 서 는 이 사건 을 사용 하여 마지막 청소 작업 을 수행 합 니 다.예 를 들 어 열 린 파일 과 데이터 베 이 스 를 닫 거나 로그 기록 을 완성 하거나 특정 작업 을 요청 합 니 다.
주의 하 다.
마 운 트 해제 단계 에서 페이지 와 컨트롤 이 표시 되 었 기 때문에 응답 흐름 을 변경 할 수 없습니다.만약 호출 방법(예 를 들 어 Response.Write 방법)을 시도 한다 면,이 페이지 는 이상 을 일 으 킬 것 이다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기