sourcecode

포스트백과 콜백의 차이점

copyscript 2023. 4. 29. 09:48
반응형

포스트백과 콜백의 차이점

저는 계속해서 '콜백'과 '포스트백'이라는 단어가 뒤엉키는 것을 듣습니다.
입니까? 둘사이차무엇니까입은이점의?까▁what니무엇?

ASP에 매우 특정한 포스트백입니다.NET 페이지?

페이지의 데이터(전체 페이지)가 클라이언트에서 서버로 게시될 때 포스트백이 발생합니다.즉, 데이터가 서버에 다시 게시되어 페이지가 새로 고쳐집니다(다시 그려짐).'데이터로 가득 찬 페이지 전체(asp.net )를 서버에 저장한다'고 생각하면 됩니다.

한편 콜백은 포스트백의 특별한 종류이기도 하지만, 작은 데이터 집합(일반적으로)을 얻기 위해 서버로 빠르게 왕복하는 것일 뿐이므로 포스트백과 달리 페이지가 새로 고쳐지지 않습니다...이를 '서버에 액세스하여 데이터일부 반환'하는 것으로 간주합니다.

아스퍼와 함께., 콜백이 호출될 때는 포스트백과 달리 ViewState가 새로 고쳐지지 않습니다.

전체 페이지가 ASP로 게시되는 이유.넷은 ASP 때문입니다.은 전체 를 은넷전 .<form>게시 방법을 사용하여 페이지에서 제출 단추를 누르면 양식에 있는 모든 필드와 함께 양식이 서버로 전송됩니다.기본적으로 전체 페이지 자체입니다.

FireBug(FireBug용)를 사용하는 경우 서버로 호출되는 콜백을 실제로 볼 수 있습니다.Console이렇게 하면 서버로 전송되는 특정 데이터를 확인할 수 있습니다.Request) 및( )도 Response).


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

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

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

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

이 논의의 대부분은 ASP입니다.NET 게블디크 언어...

답은 '그렇다'입니다.포스트백은 Microsoft의 ASP와 관련된 "용어"입니다.NET 그러나 Microsoft와 같은 공급업체는 이러한 프로세스의 자체 버전을 자체 구현을 중심으로 포장하여 Http/Html 세계에서 실제로 어떤 일이 일어나는지에 대해 우리 모두를 혼란스럽게 합니다.

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

불행하게도, 이것은 엄청난 양의 불필요한 데이터를 유선으로 전송하기 때문에 많은 사람들이 페이지에 있는 그들의 뷰 상태와 자매 포스트백을 대역폭 낭비와 웹 페이지 상태를 구현하는 엉성한 방법으로 간주하게 되었습니다.캐시 가능한 CSS와 일관된 HTML 마크업을 사용하여 설계된 대부분의 최신 브라우저와 웹 사이트는 브라우저 네이티브 HTML 캐시를 사용하여 매우 자연스럽게 페이지 상태를 반환합니다.완전한 POSTBACK은 종종 불필요합니다.

CALLBACK은 자바스크립트에 불과합니다.그냥 ECMASCRIPT 서커스 묘기 ASP입니다.NET은 AJAX API라는 이름의 거대한 자바스크립트 라이브러리에 브라우저가 서버에서 다운로드하는 ASP를 저장합니다.NET 개발자는 자신도 모르게 웹 페이지에 팩을 넣어 전체 POSTBACK 없이 웹 페이지의 변경 사항을 트리거합니다.ASP.AJAX용 NET API는 클라이언트 측에 있는 이 모든 대규모 Javascript를 생성하고 사용자가 무언가를 변경하거나, 무언가를 롤오버하거나, 브라우저에서 무언가를 클릭하여 전통적인 JavaScript 브라우저 DOM 이벤트를 트리거할 때 브라우저에서 트리거됩니다. 그러면 JSON 또는 기타 데이터의 엄청난 양이 다시 서버로 전송되어 처리됩니다.그런 다음 자바스크립트 라이브러리와 브라우저의 메모리에 있는 객체에 의해 반환되고 승인되며 사용자 웹 페이지와 마크업의 일부가 변경됩니다.

그것은 사용자와 브라우저의 5-10%가 Javascript를 비활성화했기 때문에 JSON과 AJAX가 모두 중단되고 그 사람들을 위해 태워질 것이라고 말했습니다.콜백이 작동하지 않습니다.

그것이 바로 뒤에서 진행되는 일입니다.대부분은 과잉 살상입니다그래서 웹 컨트롤 모델이 ASP에 있는 것입니다.NET은 과거에 비판을 받아왔습니다.

만약 당신이 ASP를 포기했다면요.잠시 동안, 당신은 HTML 웹 페이지에 텍스트 상자와 버튼 하나로 간단한 양식 필드를 직접 작성하고 그것을 누르고 ASP처럼 서버에 게시하는 것을 볼 수 있습니다.NET 페이지는 더 빠르고 간단할 것입니다.그게 진짜 POSTBACK입니다.브라우저는 필요한 POST HTTP 헤더를 서버에 전송하지만 페이지의 나머지 부분에 HTML을 캐시하므로 스스로 번개를 빠르게 렌더링합니다.

CALLBACK의 경우 간단한 Javascript/ECMAScript 코드를 동일한 HTML 페이지에 추가하면 됩니다. 여기서 사용자가 텍스트나 단추를 굴리거나 양식 필드를 클릭하거나 변경하면 웹 페이지가 POST되지 않지만, 배경 뒤에서 Javascript가 서버로 무언가를 전송합니다.당신이 당신 자신의 자바스크립트, JSON 또는 라이브러리를 통해 그것을 어떻게 처리하는지는 또 다른 거래입니다.하지만 마법은 아닙니다.Javascript 또는 Javascript가 비활성화되지 않은 사용자의 경우 CALLBACK 없이 페이지를 설계하고 양식 필드 컨트롤 또는 하이퍼링크를 클릭할 때 반환되는 모든 변경사항을 캐시해야 합니다.현재 대부분의 현대 사용자 에이전트가 ECMA 스크립트로 작성된 웹 사이트 루틴에 대해 설정되어 있지만 콜백 루틴을 다시 고려해야 하는 한 가지 이유는 다음과 같습니다.

이것이 바로 사람들을 혼란스럽게 하는 이유입니다. 매우 기본적인 HTTP 요청과 Javascript로 작성된 트릭의 공급업체 구현이 명확하지 않은 언어로 계층화됩니다.그런 다음 사람들이 아주 간단한 코딩으로 해결할 수 있는 이 모든 불필요한 것들을 하는 엄청난 웹 애플리케이션을 만들게 합니다.

저는 여전히 ASP를 사용하고 추천합니다.NET. 그것은 먼 길을 왔고 훌륭한 시스템이 되었습니다.하지만 더 많은 사람들이 그들이 사용하기 전에 하는 일의 기본을 이해한다면 도움이 될 것입니다. 만약 여러분이 후드 아래에서 실제로 무슨 일이 일어나고 있는지 본다면 이 프레임워크들은 그것들을 개선하기 위해 사용자 지정되고 상당히 단순화될 수 있기 때문입니다.

드레아스의 대답에 동의하지만, 몇 가지 요점을 덧붙이고 싶습니다.포스트백은 ASP에서 아주 최근에 도입한 용어입니다.Dreas가 설명한 것처럼 NET 프로그래밍은 콜백이 더 일반적이며 웹 개발이 존재하기 전에 사용되었습니다.사실 저는 C에서 프로그래밍을 시작하던 시절에 콜백에 대해 처음 들었고(아마도 그 이전에 이 용어가 존재했을지도 모릅니다), 그것은 단순히 함수에 대한 포인터를 의미하며 함수(이름은 이 A)에 대한 이 포인터는 나중에 A를 호출할 다른 함수(이름은 이 B)로 전달됩니다.콜백은 Yahoo UI Connection Manager와 다른 Ajax 프레임워크에서도 최근에 사용되고 있지만 이 용어는 옛날 C 시대에 처음 사용되었다고 생각합니다.

포스트백은 요청이 서버로 전송되면 각 요청에 대한 보안에 대한 세부 정보를 제공할 필요가 없습니다.

다른 페이지 콜백을 서버에서 사용하도록 요청할 때

포스트백은 또한 기본적으로 그 때 포스트백이 실행될 때 왕복이라고 알려진 특별한 방법을 부릅니다.포스트백은 서버 측에 있고 왕복은 클라이언트 측에 있습니다.

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

반응형