기본적으로는 서버와 클라이언트 코드는 서로를 직접적으로 호출 할 수 없다. 서로 실행되는 시간과 위치가 다르기 때문이다.
서버코드 : Requeset를 받았을때 서버에서 실행
클라이언트코드 : Response를 받은 클라이언트 브라우저에서 실행
하지만, 이를 가능하게 하는 몇가지 방법이 있고, 매번 기억하기 어려워서 여기에 정리해본다.
뭐 고급유저라면 관련 Tip을 상당히 여러가지 알고 있겠지만, 그래도 모든걸 항상 기억하긴 여러우니까...
<작성: http://blog.naver.com/myfancy>
1. ASP.NET AJAX - Web Service 호출
스크립트에서 Web Service 컨테이너에서 노출하고 있는 함수를 AJAX로 호출하는 방법이다. 포스트백이나 페이지 리프레시가 발생하지 않는다. 하지만, 비교적 많은 이해가 필요하고, .asmx로 웹서비스를 별도로 만들어야만 된다.
참고) Client-Side Web Service Call with AJAX Extentions
http://msdn.microsoft.com/en-us/magazine/cc163499.aspx
Calling Web Servivce from Client Script
http://msdn.microsoft.com/en-us/library/bb398995.aspx
http://msdn.microsoft.com/ko-kr/library/bb398998.aspx
2. ASP.NET Ajax Extentions - PageMethod 호출
PageMethod는 기본적으로 Page의 Behind코드에 public static으로 노출하고, JavaScript에서 호출하는 방식이다. PageMethod는 [WebMethod]라고 함수에 꾸며주기만 하면되고, Response에 Inline JavaScript Proxy 코드가 생성된다.
<asp:ScriptManager ... EnablePageMethods=”true”/>
이 기법을 사용하기 위해서는 ScriptManager에 EnablePageMethods속성을 true로 설정하면 된다.
3. jQuery를 이용한 WebService 호출
http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/
http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/
http://encosia.com/2008/06/05/3-mistakes-to-avoid-when-using-jquery-with-aspnet-ajax/
4. Get, Post를 이용한 방법 (Non Ajax)
ASP.NET의 Page, HttpHandler, HttpModule등을 이용하여 Request를 받아 Response를 주는 인스턴스를 만들어 놓고, 순수 Ajax나, Post등의 기법을 이용하여 처리 할 수 있다.
'Web Platform' 카테고리의 다른 글
[펌]ASP.NET 2.0 다국어 지원 웹 사이트 구축하기 (0) | 2010.06.17 |
---|---|
IFrame 크기 자동 조절 스크립트 (0) | 2010.06.17 |
오른쪽마우스클릭 및 드래그 방지 (0) | 2010.06.17 |
The web server process that was being debugged has been terminated by Internet Information Services (IIS) (0) | 2010.05.24 |
Browser Compatibility Check for Internet Explorer Versions from 5.5 to 8 (0) | 2010.01.21 |