2014-11-17 2 views
1

을 기다리고 있습니다 :차이/

Building Applications with ASP.NET MVC 4ASP.NET MVC 5 Fundamentals

내가이 개 다른 용어를 건너 왔어요 : AJAX Helperasync/await을.

나에게 "소리"는 비동기 모드에서 작동합니다 (내가 틀렸다면 올바르게 수정합니다). 각각의 차이점은 무엇입니까?

+3

'async/await'는 비동기 방식으로 수행하는 서버 측 방식으로 내부 스레드가 작업을 대신 처리하지만'ajax'를 사용하면 클라이언트 측에서 동일한 작업을 수행하므로 브라우저가이를 수행합니다. 즉,'XMLHTTPRequest', 성공 응답이 클라이언트에 도달하면 콜백이 발생합니다. –

답변

4

그들은 실제로 완전히 다릅니다. 차이를 이해하는 핵심은 HTTP 프로토콜에 대해 생각하는 것입니다.

HTTP 프로토콜에는 하나의 요청과 하나의 응답이 있습니다. 그게 전부 야. 클라이언트가 요청을하고 서버가 응답을 작성하여 보냅니다.

요청 처리기 (예 : MVC 작업)에서 asyncawait을 사용하면 여전히 하나의 응답 만 있습니다. async은 HTTP 프로토콜을 변경하지 않습니다. 따라서 비동기 작업이 수행되는 동안 async/await은 요청 스레드를 무료로 사용합니다. 그러나 비동기 작업이 진행되는 동안 클라이언트에 아무 것도 보내지지 않습니다 (응답이 아직 생성되지 않았습니다). async/await은 ASP.NET 런타임에는 "yielding"으로 간주 할 수 있지만 클라이언트 브라우저에는 사용할 수 없습니다.

AJAX는 다른 접근 방식입니다. AJAX는 현재 페이지를 변경하지 않고 브라우저에서 개의 HTTP 요청을 발행하는 규칙입니다. SPA를 쓰고 있거나 자리 표시 자 페이지를로드하려면 을 입력하고을로드하려면 AJAX를 사용하십시오.

자세한 내용은 my MSDN article on async ASP.NET의 "비동기 코드가 실버 글 머리 기호가 아닙니다."섹션을 참조하십시오.