>  기사  >  백엔드 개발  >  동기 요청과 비동기 요청의 차이점에 대한 자세한 설명

동기 요청과 비동기 요청의 차이점에 대한 자세한 설명

小云云
小云云원래의
2018-03-21 13:12:457660검색

먼저 동기화와 비동기의 개념을 설명하세요
동기화는 송신자가 데이터를 보내고 수신자가 응답을 다시 보내기를 기다린 후 다음 데이터 패킷을 보내는 통신 방식을 말합니다. 비동기식이란 송신자가 데이터를 보내고 수신자가 응답을 보내기를 기다린 후 다음 데이터 패킷을 보내는 통신 방법을 말합니다.
동기식 통신 및 비동기식 통신의 개념
동기식 통신은 양쪽 당사자가 동일한 클록 주파수에서 통신하고 정확하게 조정해야 합니다. 단일 클록 또는 타이밍 펄스 소스를 공유함으로써 송신자와 수신자의 정확한 동기화를 보장하고 더 효율적입니다.
비동기 통신에서는 발신자와 수신자가 모두 동기화할 필요가 없습니다. 두 당사자 모두 비동기 통신 프로토콜을 따르고 문자를 데이터 전송 단위로 사용합니다. 동기 전송에 비해 전송 효율이 낮습니다.
웹 서비스 호출을 위한 사용자의 통신 선택: 동기식 또는 비동기식.
사용자는 동기식 또는 비동기식으로 서비스 호출을 구현할 수 있습니다. 소비자의 관점에서 볼 때 이 두 접근 방식의 차이점은 다음과 같습니다.
동기화 - 소비자는 스레드가 요청을 보내고 서비스가 실행되는 동안 차단하고 응답을 기다리는 단일 스레드를 통해 서비스를 호출합니다.
비동기 - 소비자는 두 개의 스레드를 통해 서비스를 호출합니다. 하나의 스레드는 요청을 보내고 별도의 스레드는 응답을 받습니다.
동기 및 비동기라는 용어는 순차 및 동시성과 혼동되는 경우가 많습니다. 후자의 두 용어는 개별 작업을 수행해야 하는 순서와 관련된 반면, 동기 및 비동기는 스레드가 단일 작업(예: 단일 서비스 호출)을 수행하는 방식과 관련됩니다. 동기 호출과 비동기 호출의 차이점을 이해하는 좋은 방법은 충돌 복구의 결과를 고려하는 것입니다.
동기 - 서비스가 실행되는 동안 차단하는 동안 소비자가 충돌하는 경우 다시 시작할 때 다시 시작할 수 없습니다. 통화가 진행 중이므로 응답이 손실됩니다. 사용자는 호출 프로세스를 반복해야 하며 이번에는 충돌이 발생하지 않기를 바랍니다.
비동기 - 요청을 보낸 후 응답을 기다리는 동안 사용자가 충돌하는 경우 다시 시작하면 응답을 계속 기다릴 수 있으므로 응답이 손실되지 않습니다.
충돌 복구가 동기 호출과 비동기 호출의 유일한 차이점은 아니지만, 특정 호출이 작동하는 방식을 결정하려는 경우 각 호출이 충돌 복구를 처리하는 방법을 고려하면 좋은 답을 얻을 수 있는 경우가 많습니다.
+++ ++++++++++++++++++++++++++++++++++++++++++++++++ +++++ ++++
Java 웹 개발에서 Ajax를 사용할 때 동기식 통신 모델과 비동기식 통신 모델 간의 차이점을 완전히 이해하는 것이 중요합니다(참고자료 참조). 비동기식 통신 모델에 대한 지원 부족은 클라이언트 측 개발, 웹 프레임워크와의 통합, 태그 라이브러리 사용, IDE 사용 및 스레드 동작에 영향을 미칩니다.
동기식 요청/응답 통신 모델에서 (웹 사용자를 통해) 요청을 시작하는 것은 항상 브라우저(웹 서버, 애플리케이션 서버 또는 웹 애플리케이션이 아님)입니다. 그러면 웹 서버, 응용 프로그램 서버 또는 웹 응용 프로그램이 들어오는 요청에 응답합니다. 동기 요청/응답 쌍이 처리되는 동안 사용자는 브라우저를 계속 사용할 수 없습니다.
비동기 요청/응답 통신 모델에서는 브라우저(웹 사용자를 통해)에서 웹 서버, 애플리케이션 서버 또는 웹 애플리케이션(또는 그 반대로)으로의 통신이 분리됩니다. 비동기 요청/응답 쌍 처리에서 웹 사용자는 현재 비동기 요청이 처리되는 동안 브라우저를 계속 사용할 수 있습니다. 비동기 요청 처리가 완료되면 비동기 응답이 웹 서버, 애플리케이션 서버 또는 웹 애플리케이션에서 클라이언트 페이지로 다시 전달됩니다. 일반적으로 호출은 이 프로세스 동안 웹 사용자에게 영향을 미치지 않습니다. 응답을 기다릴 필요가 없습니다.
Jquery ajax에서 데이터 제출은 동기식 또는 비동기식으로 수행할 수 있습니다. 1. 동기식과 비동기식의 차이점은 무엇입니까? , 2. 어떤 상황에서 사용됩니까? 동기: 요청 제출 -> 서버 처리 대기 -> 처리 및 반환 후 클라이언트 브라우저는 이 기간 동안 아무 작업도 수행할 수 없습니다.
비동기: 요청이 이벤트에 의해 트리거됨 -> 서버 처리(이는 브라우저가 여전히 다른 작업을 수행할 수 있음을 의미) 일) - >처리됨 1. 나의 이해: 1. 한마음: 현재는 한 가지 일만 할 수 있으며, 다른 일들은 다음 일을 계속하기 전에 현재 일이 완료될 때까지 기다려야 합니다. 2. 반신반의: 동시에 여러 가지 일을 할 수 있습니다. 왼손은 스페이스바를 누르고, 오른손은 계속 마우스를 칠 수 있으며, 눈은 동시에 화면을 바라보아야 합니다. 딱딱한. 2. 다음 스크립트를 살펴보십시오. (A)의 function

ValidateClick()
{ var areaNo=$("#<%=drpList.ClientID %>").val(); if(areaNo) { alert("请选择"); return false; } $.ajax({
cache:"False",
type:"POST", (A)//async: false, 【(A)】
url:"Validate.ashx",
data:$("#form1").serialize(), 
success:function(o)
{ 
if(o=="ERROR") { alert("输入错误!"); return false;} 
else if(o=="OK")
{ alert("正确!");return true; } 
else
{ alert("其他错误!"); return false;}
},
error:function(xhr, ajaxOptions, thrownError)
{ alert("网络异常,稍后重试!"); return false; }
}); // 【(B) 】 //alert("这里");return true;}

: 기본값은 true가 아니며, 이는 비동기 전송이 사용됨을 의미합니다. async: true: POST를 사용하여 URL 페이지에 데이터를 제출한 후 (A)가 결과를 반환했는지, (B)가 실행되었는지에 관계없이 [(B)]의 메서드나 함수가 동시에 실행되며, (A)에 결과가 반환되면 프롬프트가 나타납니다. 지정된 if 기준, when async: false인 경우: 이때 (A)에서 결과가 반환될 때까지 기다린 후 if 판단문을 실행한 후 (에서 함수를 실행해야 합니다. 비).

위 내용은 동기 요청과 비동기 요청의 차이점에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.