스택 오버 플로우가 작동하는 방식은 CodeProject 기사의 두 가지 중요한 점에서 다릅니다.
스택 오버플로는 독립 실행 형 ASPX 페이지가 아니라 ASP.NET MVC 컨트롤러 동작에 대한 AJAX 요청을 만들고 있습니다. 이것을 ASP.NET AJAX 페이지 메서드의 MVC 아날로그로 간주 할 수 있습니다. 두 경우 모두 ASPX 방법은 성능면에서 뒤떨어집니다.
Stack Overflow의 AJAX 요청은 임의의 일반 텍스트 또는 HTML이 아닌 JSON 직렬 결과를 반환합니다. 이것은 클라이언트 쪽에서 더 표준화되고 일반적으로 더 깨끗하게 처리합니다. 예를 들어
: 나는이 질문을 선정 할 때 XMLHttpRequest의 요청이 POST 데이터 2의 "voteTypeId"로/질문/171000/투표로 이루어졌다.
요청이 곳 테이블에 내 투표를 추가 처리 한 다음이 JSON으로 대응 컨트롤러
:
: 그 정보를 사용하여
{"Success":true,"NewScore":1,"Message":"","LastVoteTypeId":2}
는,이 자바 스크립트는 클라이언트 측 표시를 업데이트 돌봐
var voteResult = function(jClicked, postId, data) {
if (data.Success) {
jClicked.parent().find("span.vote-count-post").text(data.NewScore);
if (data.Message)
showFadingNotification(jClicked, data.Message);
}
else {
showNotification(jClicked, data.Message);
reset(jClicked, jClicked);
if (data.LastVoteTypeId) {
selectPreviousVote(jClicked, data.LastVoteTypeId);
}
}
};
WebForms를 사용하는 경우 내 블로그에서 찾은 페이지 메서드를 호출하는 예가 분명합니다.
그러나 페이지 메서드 대신 중앙화 된 기능 (이 투표 예제와 같은)에 대해 웹 서비스를 고려하는 것이 좋습니다. 페이지 메소드는 작성하기가 약간 쉬워 보이지만 일부 재사용 단점이 있으며 실제 존재하지 않는 추가 보안 기능을 제공하는 경향이 있습니다.
이
당신이 발견 같은 일을하는 예이지만, 웹 서비스 (실제로 포스트에지도이 게시물에 대한 의견을 당신은 발견) :
http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/
감사합니다 ... 나는 당신의 블로그에도 감사드립니다. –
문제 없습니다. 희망이 도움이됩니다. –
이 대답에 대해 한 가지 더 표현하고 싶습니다. 솔루션이 중앙 집중식 시스템이 아닌 경우 페이지 방법을 사용하십시오. –