>  기사  >  웹 프론트엔드  >  Ajax 동기화와 비동기의 차이점은 무엇입니까

Ajax 동기화와 비동기의 차이점은 무엇입니까

青灯夜游
青灯夜游원래의
2022-01-13 17:47:5310189검색

차이: 1. 동기화에서는 스레드가 실행을 시작하기 전에 이전 스레드의 실행이 완료될 때까지 기다려야 하지만, 비동기 모드에서는 스레드가 실행 중인 경우 다음 스레드가 완료될 때까지 기다리지 않고 실행을 시작할 수 있습니다. 2. 동기화는 단일 스레드 작업이고, 비동기는 다중 스레드 작업입니다. 3. 비동기는 동기화보다 효율적입니다.

Ajax 동기화와 비동기의 차이점은 무엇입니까

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

ajax 비동기 요청:

비동기 요청은 요청이 진행되는 동안 브라우저가 계속해서 요청을 보내도 페이지 로딩 및 사용자 작업에 영향을 미치지 않음을 의미합니다. 두 줄. 서로 영향을 주지 않고 각자의 길을 간다. 일반 기본값은 true입니다. 비동기식 요청은 사용자 경험에 전혀 영향을 미치지 않습니다. 요청이 길거나 짧더라도 사용자는 페이지의 다른 콘텐츠를 작업하는 데 집중하고 있으며 기다리고 싶지 않습니다.

예:

$.ajax({ 
     type:"POST",
     url:"Venue.aspx?act=init",
      dataType:"html",
     success:function(result){  //function1()
       f1();
       f2(); 
    }
     failure:function (result) { 
      alert('Failed'); 
     },
 }
 function2();

설명: 위 코드에서 ajax 블록이 요청을 보낼 때 function1()에 머물면서 서버로부터의 반환을 기다리지만 동시에 (이 대기 프로세스 동안) , 프런트 데스크는 function2()를 실행합니다.

ajax 동기 요청:

동기 요청은 현재 요청이 발행된 후 브라우저가 아무것도 할 수 없음을 의미하며, 후속 코드가 실행되기 전에 요청이 완료되고 데이터가 반환될 때까지 기다려야 합니다. 즉, JS 코드가 현재 ajax에 로드되면 페이지의 모든 코드가 로드를 중지하고 페이지는 ajax가 실행된 후 일시 중지된 애니메이션 상태가 됩니다. 정지된 애니메이션 상태를 해제하기 위해 계속 실행합니다(즉, ajax가 데이터를 반환하면 페이지가 정지됩니다).

예:

$.ajax({ 
     type:"POST",
     url:"Venue.aspx?act=init",
     dataType:"html",
     async: false,    success:function(result){  //function1()
       f1();
       f2();
     }
    failure:function (result) { 
      alert('Failed'); 
     },
 }
 function2();

설명: 위 코드에서 asyn이 false로 설정되면 ajax 요청이 동기화됩니다. 즉, 이때 ajax 블록이 요청을 보낸 후 function1( ) 위치에 있으면 function1() 부분이 실행될 때까지 function2()가 실행되지 않습니다.

Ajax 동기 요청과 비동기 요청의 의미를 읽은 후, Ajax 동기 요청과 비동기 요청의 차이점을 살펴보겠습니다.

Ajax 동기 요청과 비동기 요청의 차이점:

동기화는 스레드가 실행을 시작하기 전에 이전 스레드의 실행이 완료될 때까지 기다려야 함을 의미합니다. 클라이언트가 요청하는 한, 서버에 피드백 정보가 없기 전에는 스레드 차단 상태입니다.

비동기란 한 스레드가 실행 중일 때 실행이 완료될 때까지 기다리지 않고 다음 스레드가 실행을 시작할 수 있음을 의미합니다. 비동기식은 확실히 멀티스레딩입니다. 클라이언트가 요청하면 다른 스레드가 실행될 수 있으며 이 스레드는 대기열에 저장되어 순서대로 실행됩니다.

비동기가 동기보다 더 효율적입니다. 스레드 간에 데이터를 공유하는 경우 동기화를 사용해야 합니다!

비동기 모드:

AJAX를 사용하여 요청을 보낸 후 실행해야 할 코드가 있을 수 있습니다. 현재로서는 여러 가지 이유로 인해 서버가 요청에 응답하지 않을 수 있지만 비동기 실행을 사용하기 때문에 AJAX 요청 코드가 포함된 모든 함수의 나머지 코드는 계속 실행됩니다. 처리를 위해 요청 결과를 다른 JS 함수에 넘겨주면 동시에 실행되는 두 개의 스레드와 같습니다.

동기 모드에서:

AJAX를 사용하여 요청을 보낸 후에도 나중에 실행해야 하는 코드가 남아 있습니다. 또한 처리를 위해 서버 응답을 다른 JS 함수에 넘겨주지만 코드 실행 상황은 다음과 같습니다. 이번에는 서버가 응답하지 않거나 응답 결과를 처리하는 JS 함수가 처리되어 반환되지 않은 경우 요청 코드가 포함된 함수의 나머지 코드를 실행할 수 없습니다. 단일 스레드와 마찬가지로 요청이 전송된 후 차단 상태에 들어가고 나머지 코드는 차단 상태에 도달할 때까지 계속 실행되지 않습니다.

【관련 튜토리얼 추천: AJAX 동영상 튜토리얼

위 내용은 Ajax 동기화와 비동기의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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