콜백의 일반적인 사용법은 msdn의 도움말과 예제를 직접 참조하는 것만으로도 충분합니다. 그러나 실제로 제대로 사용하고 정확하게 사용하거나 콜백 메커니즘을 기반으로 일부 WEB 구성 요소를 개발하려면 먼저 콜백 구현 메커니즘을 깊이 이해해야 합니다. 이 기사에서 Teddy는 콜백의 전체 호출 및 피드백 메커니즘을 분석하는 데 도움을 줄 것입니다. 콜백을 더 잘 사용하는 데 도움이 될 것입니다.
콜백 vs Atlas
먼저 Atlas에 대해 이야기해 보겠습니다. 많은 친구들이 이미 Callback이 있다는 사실에 이상하다고 생각할 수도 있는데, Atlas를 다시 출시해야 하는 이유는 무엇입니까? 이 문제에 대해서는 Atlas의 저자가 어떻게 설명하는지 조사하지 않았습니다. 하지만 개인적으로 콜백과 아틀라스를 사용해 본 경험으로 볼 때 인터페이스로서의 콜백은 포스트백과 매우 유사하며, 사용자가 포스트백과 유사하게 사용할 수 있도록 해야 한다고 생각합니다. 그러나 포스트백과 유사한 메커니즘은 사용하기가 특별히 편리하지도 않고 확장하기도 쉽지 않다고 해야 합니다. 물론 이는 다른 AJAX 프레임워크 구현과 비교됩니다. 따라서 Microsoft는 Prototype, Backbase 및 AJAX.NET과 같은 기존의 많은 AJAX 구현으로부터 학습했으며 이를 ASP.NET 2.0의 일부 고유 기능과 결합하여 다른 기능을 활용하는 AJAX 프레임워크를 만들었습니다. Atlas를 기반으로 AJAX 애플리케이션을 개발하는 것이 얼마나 좋은지 정량화하기는 어렵지만 다른 AJAX 프레임워크와 Microsoft의 백엔드 및 live.com Promotion과 같은 대규모 사이트의 애플리케이션보다 확실히 나쁘지는 않습니다. 그 영향은 확실히 가치가 있습니다. 기대하고 있습니다.
그러나 이것이 콜백 구현이 쓸모없다는 것을 의미하지는 않습니다. 프로그래머로서 우리는 올바른 사용 사례에 올바른 태도를 갖고 가장 정확한 기술을 사용해야 합니다. 모든 사용 환경에 전능하고 적합한 프레임워크는 없습니다. 모두가 어떤 소프트웨어 개발 방법이 가장 좋은지 논쟁하는 것처럼 CMMi, RUP, XP, AGILE~~ 사실 최고는 없으며 가장 적합한 것이 가장 적합합니다. 우리가 가장 해야 할 일은 다양한 솔루션의 원리, 장점, 단점을 이해하여 올바른 도구를 합리적으로 사용하여 실제 문제를 해결할 수 있도록 하는 것입니다.
클라이언트 스크립트에서 시작
우리 모두는 최하위 수준에서 모든 AJAX에는 XMLHTTP와 IFRAME이라는 두 가지 구현 메커니즘만 있다는 것을 알고 있습니다. AJAX라는 단어가 널리 주목을 받기 전에는 실제로 이 두 가지 기본 구현을 기반으로 한 기능적 프레임워크 또는 이 두 기술을 기반으로 한 비새로 고침 효과 구현이 이미 널리 사용되었습니다. 물론 오늘날의 개발에서는 인터페이스 사용 측면에서 이러한 기본 메커니즘의 세부 사항이 프레임워크에 의해 숨겨지는 경우가 많으며 인터페이스 사용은 점점 더 단순해졌습니다. 사용자는 이러한 간단한 인터페이스만 호출하면 되며 알 필요가 없습니다. 구체적인 효과를 얻는 방법.
그러나 우리는 콜백 구현 메커니즘을 분석하기 위해 여기 왔으므로 콜백 호출 클라이언트 스크립트 호출부터 시작하여 Microsoft가 이 콜백 메커니즘을 구현하는 방법을 살펴보겠습니다.
1. ClientScript.GetCallbackEventReference(...)
콜백을 트리거하려면 먼저 클라이언트 스크립트에서 호출을 실행해야 합니다. 일반적인 호출 구문은 다음과 같습니다:
<script 언어="javascript" type="text/javascript">
함수 any_script_function(arg, context)
{
<%= ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context")%>;
}
</script>
ClientScript.GetCallbackEventReference(...)는 전달된 매개변수에 따라 실제 콜백 스크립트를 반환합니다. 이 함수에는 여러 오버로드된 버전이 있으므로 이러한 매개변수의 의미는 MSDN을 참조할 수 있습니다. 위 샘플 코드에서 특정 매개변수를 사용하세요.
- 이는 콜백을 실행하는 서버 컨트롤이 현재 페이지임을 의미합니다. 이에 대해 GetCallbackResult() 및 void raiseCallbackEvent(eventArgument) 문자열을 포함하여 ICallbackEventHandler 인터페이스를 구현해야 합니다. 두 개의 인터페이스 함수를 사용하는 경우 이 매개변수는 WEB 컨트롤에 대한 참조일 수도 있습니다. 물론 이 공간은 ICallbackEventHandler 인터페이스도 구현해야 합니다
. 형식을 정의하는 문자열입니다.
- "ReceiveServerData"는 콜백이 성공한 후 반환된 콘텐츠를 처리하는 클라이언트 스크립트 함수의 이름입니다. 이 함수는 콜백이 실행되는 페이지에 존재해야 하며 두 개의 매개변수를 포함할 수 있습니다. , 예:
<script type="text/javascript">
functionReceiveServerData(결과, 컨텍스트)
{}
</script>
이 두 매개변수는 콜백의 반환 데이터 결과이며, 콜백을 트리거할 때 변경되지 않고 반환되는 컨텍스트 매개변수입니다. 물론 이 두 매개변수는 문자열 형식입니다.
- "컨텍스트"를 설명할 필요가 없습니다. 이 매개변수는 지정된 반환 데이터 처리 함수에 그대로 전달된다는 점만 기억하세요. MSDN의 공식 문서에 따르면 일반적으로 클라이언트의 반환 데이터 처리 기능에서 호출해야 하는 스크립트 코드를 전달하는 데 컨텍스트를 사용할 수 있지만 실제로는 클라이언트의 트리거 콜백으로 생각하면 됩니다. 반환된 데이터를 처리하는 수신 세그먼트 간의 매개변수 전송 채널에 연결됩니다.