웹 컨트롤을 만들 때 온로드를 재정의하거나 Page_load를 구현해야합니다.

StackOverflow https://stackoverflow.com/questions/147033

  •  02-07-2019
  •  | 
  •  

문제

Visual Studio에서 새로운 웹 사용자 컨트롤을 만들 때 기본적으로 Page_load 이벤트를 추가합니다. 기지를 무시하는 대신 이것을 사용하는 데있어 장점은 무엇입니까? OnLoad 통제 이벤트? 그저 그게 Page_Load 전에 이벤트가 발생합니다 OnLoad?

도움이 되었습니까?

해결책

그만큼 OnLoad 방법은 장소가되어야합니다 Load 이벤트가 제기됩니다. 나는 개인적으로 이벤트 제기와 관련하여 추가 처리를하지 않으면 항상 이벤트를 처리하려고 노력합니다.

정상적인 상황에서 이벤트 자체를 처리하는 것이 좋습니다.

다른 팁

당신은 이것을 찾을 수 있습니다 기사 Microsoft 유용한 페이지 라이프 사이클에서.

위에서 볼 수 있듯이, 그 선택이 지식으로 만들어지면 대부분 개인적인 선택으로 이어집니다. 내가 본 최고의 빠르지만 견고한 개요는 다음과 같습니다. http://weblogs.asp.net/infinitiesloop/archive/2008/03/24/onload-vs-page-load-vs-load-event.aspx

정말로 선택의 문제 일뿐입니다. 나에게 물체가 이벤트를 그 자체로 첨부하는 것이 이상하게 보인다. 특히 무시할 수있는 메소드가있을 때.

ASP.NET 팀은 ASP의 Global.ASA 모델이었고 상속 및 가상 방법을 우선적으로 이해하지 못하는 개발자의 기준을 낮추기 때문에 이벤트를 사용했다고 생각합니다.

이 방법을 무시하려면 페이지 라이프 사이클에 대한 더 많은 지식이 필요하지만 "잘못된"것은 없습니다.

다음과 같은 섹션을 읽습니다. "바인딩 페이지 이벤트" MSDN 페이지에서 : 제목 : "ASP.NET 웹 서버 제어 이벤트 모델" (페이지에 링크) 다음과 같은 유용한 진술이 있습니다.

하나의 단점 AutoeventWireup 속성은 페이지 이벤트 핸들러에 구체적이고 예측 가능한 이름이 있어야한다는 것입니다. 이는 이벤트 처리기를 지명하는 방법에 대한 유연성을 제한합니다. 또 다른 단점은 그 것입니다 성능은 부정적인 영향을받습니다, asp.net은 런타임에 메소드를 검색하기 때문에. 트래픽 양이 높은 웹 사이트의 경우 성능에 미치는 영향이 중요 할 수 있습니다.

(AutoeventWireup 플래그는 page_load와 같은 메소드를 켭니다)

당신이 물러나더라도 UserControl, 필요하지 않으면 보호 된 방법을 무시하지 않아야한다고 생각합니다. 그만큼 Page_Load 당신이 당신의 UserControl.

무시합니다 OnLoad 언제 (/if)에 대한 절대적인 제어가 필요한 경우 Load 이벤트가 해고되었습니다 (드문 IMO).

나는 그것이 같다고 생각합니다. IMHO, 이벤트가 포함 된 IMHO는 이벤트를 한 명 이상의 청취자가 발생할 수 있기 때문에 약간의 유연성이 있습니다!

두 가지 방법에는 잠재적으로 유의 한 차이가 있다고 생각합니다.

내가 언급하는 것은 실행 순서를 제어 할 수있는 능력입니다.

당신이 우선하고 있다면, 당신은 기본 클래스로드가 언제 전화를 걸 었는지 알 수 있습니다. 이것은 더 많은 통제력을 제공하지만 아마도 많은 사람들이 주장하는 것처럼 나쁜 일일 것입니다.

이벤트를 사용하는 경우 통화 순서 측면에서 보장이 없습니다. 이를 통해로드 단계에서 슈퍼 클래스가 수행하는 작업에 대해 불가지론 해야하는로드 이벤트를 작성해야합니다. 나는 이것이 선호되는 접근법 일 것이라고 생각하며 아마도 자동 생성 된 코드가 이런 방식 인 이유 일 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top