Programming

포스트 백과 콜백의 차이점

procodes 2020. 7. 23. 20:58
반응형

포스트 백과 콜백의 차이점


나는 ' 콜백 '과 ' 포스트 백 ' 이라는 단어를 계속 들었다 .
둘의 차이점은 무엇입니까?

포스트 백은 ASP.NET 페이지에만 적용됩니까?


포스트 백은 페이지의 데이터 (전체 페이지)가 클라이언트 에서 서버로 게시 될 때 발생합니다. 즉, 데이터가 서버로 다시 게시 되므로 페이지가 새로 고쳐지고 다시 그려집니다. ' 데이터로 가득 찬 전체 페이지 (asp.net)를 서버에 전송합니다 '.

반면에 콜백은 특별한 종류의 포스트 백 이지만 작은 데이터 세트를 가져 오기 위해 서버로의 빠른 왕복 일뿐이므로 포스트 백과 달리 페이지가 새로 고쳐지지 않습니다. ... ' 서버 호출 및 일부 데이터 수신 '으로 생각하십시오.

Asp.Net을 사용하면 포스트 백과 달리 콜백이 호출 될 때 ViewState가 새로 고쳐지지 않습니다 .

전체 페이지가 ASP.Net으로 게시되는 이유는 ASP.Net이 전체 페이지를 post 메소드<form> 와 함께 묶고 페이지에서 제출 단추를 클릭하면 양식이 모두 서버로 전송되기 때문입니다. 형식적으로있는 필드 ... 기본적으로 전체 페이지 자체.

FireBug (Firefox의 경우)를 사용 하는 경우 실제로의 서버에서 콜백이 호출되는 것을 볼 수 있습니다 Console. 그러면 서버로 전송 된 특정 데이터 ( Request)와 서버가 사용자에게 보낸 데이터 ( Response)를 볼 수 있습니다.


아래 이미지는 ASP.NET 기반 웹 사이트에서 포스트 백과 콜백의 페이지 수명주기를 보여줍니다.

ASP.NET 페이지 수명주기
(출처 : esri.com )


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

일반적으로 AJAX와 함께 사용되는 콜백은 클라이언트에서 페이지를 새로 고치지 않는 서버로 요청을 보낼 때 발생하며 일부는 브라우저에서 깜박임없이 업데이트됩니다.


Dreas의 답변에 동의하지만 몇 가지 사항을 추가하고 싶습니다. 포스트 백은 Dreas가 설명했듯이 ASP .NET 프로그래밍에 의해 최근에 도입 된 용어 인 반면 콜백은보다 일반적이며 웹 개발이 존재하기 전에 사용되었습니다. 사실 C에서 프로그래밍을 시작한 날에 콜백에 대해 처음 들었습니다 (어쩌면 그 용어는 몰랐습니다). 함수에 대한 포인터와 함수에 대한 포인터를 의미합니다 (이름은 A) 나중에 A를 호출하는 다른 함수 (이 B라는 이름)로 전달됩니다. 콜백은 최근 Yahoo UI Connection Manager 및 기타 Ajax 프레임 워크에서 사용되지만이 용어는 이전 C 일에 처음으로 사용 된 것으로 생각합니다.


이 토론 중 많은 부분이 ASP.NET gobbledygook language ...입니다.

대답은 '예'입니다. 포스트 백은 Microsoft의 ASP.NET에 고유 한 "용어"이지만 Microsoft와 같은 공급 업체는 이러한 프로세스의 OWN 버전을 자체 구현 구현으로 래핑하여 Http / Html 세계에서 실제로 발생하는 문제를 모두 혼동합니다.

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

불행히도, 이것은 많은 양의 불필요한 데이터를 유선으로 전송하여 페이지의 VIEWSTATE와 자매 POSTBACK이 많은 대역폭 낭비와 웹 페이지 상태를 구현하는 부주의 한 방법으로 간주되도록했습니다. 캐시 가능한 CSS와 일관된 HTML 마크 업을 사용하여 설계된 경우 대부분의 최신 브라우저와 웹 사이트는 브라우저 기본 HTML 캐시를 사용하여 페이지 상태를 상당히 자연스럽게 반환합니다. 즉, 전체 POSTBACK은 종종 불필요합니다.

콜백은 JavaScript 일뿐입니다. ECMASCRIPT 서커스는 ASP.NET이 브라우저에서 서버에서 다운로드하는 거대한 JavaScript 라이브러리로 AJAX API를 호출하는 방식과 ASP.NET 개발자가 자신의 웹 페이지에 무의식적으로 압축하여 전체 POSTBACK없이 웹 페이지에서 변경을 트리거하도록 ASP.NET 저장소를 속입니다. AJAX 용 ASP.NET API는 클라이언트 측에 있으며 사용자가 무언가를 변경하거나 무언가를 롤오버하거나 브라우저에서 무언가를 클릭 할 때 브라우저에서 트리거되어 기존 JavaScript 브라우저 DOM 이벤트를 트리거하는 방대한 자바 스크립트를 모두 생성합니다. 그런 다음 대량의 JSON 또는 기타 데이터를 서버로 다시 보내 처리합니다. 그런 다음 브라우저의 메모리에있는 Javascipted 라이브러리 및 객체에 의해 반환되고 수락되며 사용자 웹 페이지 및 마크 업의 일부가 변경됩니다.

그것은 사용자와 브라우저의 약 5-10 %가 자바 스크립트를 비활성화했기 때문에이 JSON과 AJAX가 모두 충돌하여 화상을 입을 것이라고 말했습니다. 즉, 콜백이 작동하지 않습니다.

그것이 무대 뒤에서 일어나는 일입니다. 당신이 저에게 묻는다면 그것의 대부분은 과잉입니다. 이것이 ASP.NET의 웹 컨트롤 모델이 과거에 비판을받은 이유입니다.

ASP.NET을 잠시 포기한 경우 단일 텍스트 상자와 단추를 사용하여 HTML 웹 페이지에 간단한 FORM 필드를 직접 작성하고 ASP.NET 페이지와 마찬가지로 서버에 게시하는 것을 볼 수 있습니다. 더 빠르고 간단합니다. 이것이 실제 POSTBACK입니다. 브라우저는 당연히 서버에 필요한 POST HTTP 헤더를 전송하지만 나머지 페이지에서 HTML을 캐시하므로 자체적으로 번개를 빠르게 렌더링합니다.

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

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

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


포스트 백은 요청이 서버로 전송 될 때 발생하며 각 요청에 대한 보안 정보를 제공 할 필요가 없습니다.

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


포스트 백은 또한 기본적으로 포스트 백이 실행될 때 라운드 트립이라고하는 특수한 방법을 호출 할 때의 왕복입니다. 포스트 백은 왕복이 클라이언트 sid에있는 서버 측에 있습니다.

참고 URL : https://stackoverflow.com/questions/365100/difference-between-a-postback-and-a-callback

반응형