ASP 비교NET의 html 컨트롤 및 웹 컨트롤


html 컨트롤러와 웹 컨트롤러는 많은 기능이 같고 비슷하지만 내부 실현 메커니즘은 완전히 다르다. 웹 컨트롤러는 Html 컨트롤러보다 실행 효율이 좋다.   
html 컨트롤과 웹 컨트롤 비교 1: 사용하기에도 상당히 편리하다. 예를 들어 Button의 생성:
Html 컨트롤은 방대한 컨트롤 집합을 페이지에 모두 가져오는 것으로, 어떤 기능을 사용할 것인지 다음과 같이 속성을 설정합니다.

  
  
  
  
  1. < input type=submit/button runat=server>  

이렇게 하면 상당히 큰 컨트롤 자원을 차지할 것이다.
웹 컨트롤은 통합 분리 기능을 단일 기능으로 제공합니다.

  
  
  
  
  1. < asp:button id="btnOK" />  

이렇게 하면 불필요한 컨트롤러가 차지하는 자원을 절약할 수 있다
html 컨트롤과 웹 컨트롤 비교 2: 웹 컨트롤은 전송 기능이 있어 ViewState로 컨트롤의 상태를 유지할 수 있다.Html 컨트롤은 사용할 수 없습니다. 페이지의 동작을 클릭하면 상태를 잃어버립니다.
다음과 같은 실험을 수행할 수 있습니다.
I. 각각 두 개의 파일을 구축한다. a.html b.aspx
II.a.html 페이지에 Html 컨트롤을 추가한 RadioButton과 button, b.aspx에 웹 컨트롤을 추가한 RadioButton과 button
III.a.html 브라우저를 두 번 클릭하여 실행, b.aspx는 IIS를 통해 실행
IV. a.html 실행 인터페이스에서 RadioButton을 선택하고 Button 단추를 누르면 RadioButton이
선택 취소(상태 분실)하지만 b.aspx 페이지에서 같은 작업을 수행하면 ViewState 때문에 Radio Button을 잃어버리지 않습니다.
상태를 저장해 두었습니다.실행 인터페이스에서 브라우저 메뉴 보기 -> 원본 파일을 클릭하여 Html 코드 파일을 열 수 있습니다.
다음과 같이 암호화된 ViewState를 찾습니다.

  
  
  
  
  1. < input type="hidden" name="_VIEWSTATE" value="dDw0ajfmafmjfzzmj4"/>  

사실 ViewState의 실현 원리도 일부 정보를 숨겨진 컨트롤에 넣고 asp.net에서 생성한 ViewState 정보는 클라이언트에 저장됩니다. 여기서 주의해야 할 점은 형식이 *일 때만 가능합니다.aspx 파일, 그리고 컨트롤에 속성이 있습니다: "runat=server"시 전송 기능이 켜집니다
html 컨트롤과 웹 컨트롤 비교 3: Html 컨트롤과 웹 컨트롤의 가장 큰 차이점은 이벤트 처리 방법이 다르다는 것이다.Html 창 컨트롤의 경우 이벤트가 발생하면 브라우저가 이를 처리합니다.그러나 웹 컨트롤의 경우 이벤트는 브라우저에서만 생성되지만 브라우저가 처리하지 않습니다. 클라이언트는 서버에 이벤트를 처리하라고 메시지를 보내야 합니다.그러나 일부 이벤트, 예를 들어 버튼/이동/마우스 등 이벤트, asp.net에 이러한 이벤트가 없기 때문에 (이 이벤트들은 실시간성이 강하고 서버가 제때에 처리하지 못하기 때문에) 이때 Html 컨트롤러는 그 역할을 발휘하여 Html 이벤트와 결합하여 협조하여 완성한다.
Html에서 자주 사용하는 이벤트는 다음과 같습니다.
브라우저에서 수행된 Html 컨트롤 이벤트:
클릭 시 트리거:

  
  
  
  
  1. < INPUT type="button" value="Click Me" onclick="alert('Hi, !');">  

마우스 바운드 시 트리거:

  
  
  
  
  1. < INPUT type="button" value="Click Me" onmouseup="alert('Hi, !');">  

컨트롤 위에 떠있을 때 터치

  
  
  
  
  1. < INPUT type="button" value="Click Me" onmouseover="alert('Hi, !');">  

컨트롤 위에서 마우스를 움직일 때 터치

  
  
  
  
  1. < INPUT type="button" value="Click Me" onmousemove="alert('Hi, !');">  

//컨트롤을 두 번 클릭할 때 트리거

  
  
  
  
  1. < INPUT type="button" value="Click Me" ondblclick="alert('Hi, !');">   

//컨트롤에 초점을 맞출 때 키를 눌렀을 때 터치

  
  
  
  
  1. < INPUT type="button" value="Click Me" onkeypress="alert('Hi, !');">  

//키를 눌렀을 때 터치

  
  
  
  
  1. < INPUT type="button" value="Click Me" onkeydown="alert('Hi, !');">    

백그라운드와 상호작용을 할 필요가 없을 때 HTML 컨트롤을 사용합니다. HTML 컨트롤이 차지하는 자원이 적고 속도도 빠릅니다. 백그라운드와 상호작용을 할 때 WEB 컨트롤을 사용하거나 HTML 컨트롤에runat="서버"를 추가하면 HTML 컨트롤을 서로 변환할 수 있습니다. 그러나 이렇게 차지하는 자원은 웹 컨트롤과 다를 것이 없습니다.
WEB 컨트롤러는 서버 측 이벤트에 응답할 수 있고 백엔드 코드에 관련 속성과 방법을 설정할 수 있습니다!HTML은 안 됩니다. WEB 서버 컨트롤러는 서버 처리를 통해 HTML 컨트롤러로 번역하여 브라우저에 보내야 하기 때문에 서버 자원을 소모하고 IEWSTATE가 있기 때문에 리셋할 때 컨트롤 상태를 유지합니다(저장하지 않기로 설정할 수도 있습니다). 이로 인해 리셋 정보량을 증가시킵니다.HTML은 브라우저로 직접 전송되며 서버 자원을 소모하지 않지만 무상태 저장!   
HTML 컨트롤의 값을 얻으려면 REQUEST의 FORM 방법을 사용해야 합니다. WEB 컨트롤은 속성을 통해 직접 처리할 수 있습니다!  
따라서 일반적으로 컨트롤 상태를 저장할 필요가 없고 값 처리가 없는 곳에서는 HTML로 컨트롤을 동적 처리하거나 상태를 저장하려면 WEB 서버 컨트롤을 사용할 수 있습니다!WEB 서버 컨트롤러는 개인적으로 편리하다고 생각하지만 서버 자원을 더 많이 소모합니다!  
많은 책에서 성능을 고려하면 WEB 서버 컨트롤을 사용하지 않을 수 있는 곳에서는 되도록 사용하지 않는다고 한다.   
언제 쓰든 언제 쓰지 않든 구체적인 상황을 봐야 하고, 조건이 넉넉한 상황에서는 개인의 습관을 봐야 한다.
차이점은 서버 컨트롤러에runat=server가 필요하지 않으면 html을 사용하고 웹은 자원을 너무 낭비한다는 것이다.

좋은 웹페이지 즐겨찾기