[asp.net] 포스트 백과 콜백의 차이점


2 Answers

포스트 백은 사용자가 현재보고있는 것과 동일한 페이지에 대한 요청이 클라이언트에서 서버로 전송 될 때 발생합니다. 다시 게시가 발생하면 전체 페이지가 새로 고쳐지고 브라우저 하단의 진행률 막대에서 일반적인 진행률을 볼 수 있습니다.

일반적으로 AJAX와 함께 사용되는 콜백은 클라이언트에서 페이지가 새로 고쳐지지 않은 서버로 요청이 보내지면 브라우저의 일부 깜박임없이 페이지의 일부만 업데이트됩니다

Question

나는이 단어 ' 콜백 '과 ' 포스트 백 '이 주위에 던져지면서 계속 듣는다.
둘의 차이점은 무엇입니까?

포스트 백은 ASP.NET 페이지에 매우 특정한가요?




요청이 서버로 전송 될 때 각 요청의 보안에 대한 세부 사항을 제공 할 필요가 없을 때 다시 게시가 발생합니다.

다른 페이지에 대한 요청을하면 콜백이 서버에서 사용됩니다.




이 토론은 ASP.NET gobbledygook language ....입니다.

대답은 '예'입니다. 포스트 백은 Microsoft의 ASP.NET에 한정된 "용어"입니다. 그러나 Microsoft와 같은 공급 업체는 자신의 OWN 버전의 프로세스를 Http / Html 세계에 실제로 존재하는 것으로 혼란스럽게 만들고 있습니다.

POSTBACK의 해당 버전은 기본적으로 원래 HTTP 요청이 원래 서버로 다시 전송됩니다. 하지만 ASP.NET에서는 웹 페이지의 작은 부분에 전통적인 양식 컨트롤이 아닌 전체 웹 페이지 주위에 거대한 FORM HTML 요소 태그 (POST 메서드 특성 포함)를 붙이면됩니다. 이들은 HTTP 사양을 사용하여 페이지 및 컨트롤의 "상태"를 유지하고 전체 페이지 (기존의 비 형식 필드 마크 업)가 원래 상태로 되돌아 왔는지 확인하기 때문에이 작업을 수행합니다.

불행하게도, 이것은 페이지의 VIEWSTATE와 자매 POSTBACK이 대역폭의 낭비와 웹 페이지 상태 구현의 엉성한 방법으로 많은 사람들에게 보여 지도록 유선을 통해 엄청난 양의 데이터를 보냅니다. 캐시 가능한 CSS와 일관된 HTML 마크 업을 사용하여 설계된 최신 브라우저와 웹 사이트는 브라우저 고유의 HTML 캐시를 사용하여 자연스럽게 페이지 상태를 반환한다는 것을 보여줄 수 있습니다. 즉 전체 POSTBACK은 종종 불필요합니다.

콜백은 단지 자바 스크립트입니다. 그것의 방금 ECMASCRIPT 서커스는 서버에서 브라우저가 다운로드하는 거대한 JavaScript 라이브러리에서 AJAX API를 호출하는 ASP.NET 스토어를 트릭합니다. 그리고 어떤 ASP.NET 개발자는 자신의 웹 페이지에 무의식적으로 포장하여 전체 POSTBACK없이 웹 페이지의 변경 사항을 트리거합니다. AJAX 용 ASP.NET API는 클라이언트 측에있는이 거대한 자바 스크립트를 모두 생성하고 사용자가 무언가를 변경하거나 롤오버하거나 브라우저에서 브라우저의 무언가를 클릭하여 전통적인 자바 스크립트 브라우저 DOM 이벤트를 트리거 할 때 브라우저에서 트리거됩니다. 거대한 JSON 또는 다른 데이터를 다시 서버로 보내 처리합니다. 그런 다음 Javascipted 라이브러리와 객체가 브라우저의 메모리에 반환되고 받아 들여지고 사용자 웹 페이지와 마크 업의 일부가 변경됩니다.

JSON과 AJAX는 모두 사용자와 브라우저의 5 ~ 10 %가 Javascript를 사용하지 못하도록하여 JSON과 AJAX가 충돌하고 화상을 입을 것이라고 말했다. 즉 CALLBACK이 작동하지 않습니다.

그것이 장면 뒤에서 일어나는 일입니다. 당신이 나에게 묻는다면 그것의 대부분은 과잉이다. 그리고 ASP.NET에서 Web Control 모델이 과거에 비판을 받았던 이유가 바로 그 때문입니다.

ASP.NET을 잠시 중단했다면 간단한 텍스트 상자와 버튼으로 HTML 웹 페이지에 간단한 FORM 필드를 작성하고 눌러서 ASP.NET 페이지와 똑같은 서버에 게시 할 수 있습니다. 더 빠르고 간단합니다. 그것이 실제 POSTBACK입니다. 브라우저는 자연스럽게 서버에 필요한 POST HTTP 헤더를 전송하지만 페이지의 나머지 부분에 HTML을 캐시하여 번개를 빠르게 렌더링합니다.

CALLBACK의 경우 사용자가 텍스트 또는 버튼을 클릭하거나 클릭하거나 양식 필드를 변경하면 웹 페이지가 POST되지 않지만 사용자가 직접 HTML 페이지에 간단한 Javascript / ECMAScript 코드를 추가 할 수 있습니다. Javascript가 서버에 무엇인가를 보내도록하십시오. 자신의 JavaScript, JSON 또는 라이브러리를 통해이를 처리하는 방법도 다른 방법입니다. 하지만 마법이 아닙니다. Javascipt 또는 Javascript가 비활성화 된 사용자는 CALLBACK이없는 페이지를 디자인하고 양식 필드 컨트롤이나 하이퍼 링크를 클릭 할 때 반환되는 변경 사항을 캐시해야합니다. 대부분의 최신 사용자 에이전트가 ECMAScripted 웹 사이트 루틴을 위해 설정되어 있지만 콜백 루틴을 다시 고려해야하는 이유 중 하나입니다.

이것이 사람들을 혼란스럽게하는 것입니다 ... 아주 기본적인 HTTP 요청과 자바 스크립트를 구현 한이 벤더 구현은 명확하지 않은 언어로 계층화됩니다. 그런 다음 사람들로 하여금 매우 간단한 코딩으로 해결할 수있는 불필요한 모든 작업을 수행하는 괴물 같은 웹 응용 프로그램을 작성하게합니다.

여전히 ASP.NET을 사용하고 추천합니다. 그것은 먼 길과 훌륭한 시스템으로 왔습니다. 그러나 더 많은 사람들이 실제 프레임 워크를 실제로 사용하는 것을 볼 때 이러한 프레임 워크를 사용자 정의하고 단순화 할 수 있기 때문에 사용하기 전에 수행 한 작업의 기본 사항을 이해하면 도움이됩니다.






Related