>  기사  >  웹 프론트엔드  >  Jquery의 Ajax 동기화 및 비동기성에 대한 자세한 설명

Jquery의 Ajax 동기화 및 비동기성에 대한 자세한 설명

亚连
亚连원래의
2018-05-25 09:55:332049검색

jquery ajax 동기화는 JS 코드가 현재 ajax에 로드되면 페이지의 모든 코드가 로드를 중지하고 페이지가 정지된 애니메이션 상태로 표시된다는 의미입니다. ajax가 완료되면 계속 실행됩니다. 다른 코드와 정지 상태가 해제됩니다. 비동기식은 이 Ajax 코드가 실행되는 동안 다른 코드가 실행될 수 있음을 의미합니다. 이 글에 자세한 설명이 나와 있으니 관심 있는 친구들은 참고하면 됩니다.

예전에 JQUERY 코드를 작성하다 보면 AJAX 로딩 데이터를 접할 때 코드 실행 순서를 고려해야 합니다. 최근 프로젝트에서는 AJAX 동기화를 사용했습니다. 이 동기화의 의미는 JS 코드가 현재 AJAX에 로드되면 페이지의 모든 코드가 로드를 중지하고 페이지가 일시 중지된 애니메이션 상태에서 벗어나 AJAX가 완료되면 다른 코드가 계속 실행된다는 것입니다. 코드와 페이지 정지 애니메이션 상태가 해제됩니다.

이 AJAX 코드가 실행되는 동안 다른 코드를 비동기적으로 실행할 수 있습니다.

jquery의 async:false, 이 속성

기본값은 true: 비동기, false: 동기입니다.

$.ajax({ 
    type: "post", 
    url: "path", 
    cache:false, 
    async:false, 
    dataType: ($.browser.msie) ? "text" : "xml", 
     success: function(xmlobj){ 
    } 
});

이 속성을 가짐으로써 코드 실행 문제를 상대적으로 줄일 수 있지만, 너무 많이 사용하면 페이지가 너무 자주 정지됩니다. 이로 인해 사용자 경험이 저하됩니다~!

$.Ajax()의 async 및 성공에 대한 공식적인 설명:

async 
Boolean 
Default: true
By default, all requests are sent asynchronous (e.g. this is set to true by default). If you need synchronous requests, set this option to false. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.
success 
Function
A function to be called if the request succeeds. The function gets passed two arguments: The data returned from the server, formatted according to the 'dataType' parameter, and a string describing the status. This is an Ajax Event.

여기서 async의 기본 설정 값은 true입니다. 이는 비동기 방식입니다. 즉, ajax가 요청을 보낸 후, 서버가 반환되기를 기다리는 동안 프런트 데스크는 ajax 블록 뒤에 있는 스크립트를 계속 실행합니다. 즉, 이때 두 개의 스레드가 하나씩 실행됩니다. ajax 블록이 요청을 보냅니다. ajax 블록 뒤에 있는 스레드 및 스크립트(다른 스레드)의 예:

$.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()를 실행할 것입니다. 즉, 이때 두 개의 스레드가 나타날 것입니다. 여기서는 function1()과 function2()입니다.

            asyn이 false로 설정되면 ajax 요청은 동기식입니다. 즉, ajax 블록이 이때 요청을 보낸 후 function1()에서 기다리고 function2()를 실행하지 않습니다. function1() 부분이 실행됩니다.

위 내용은 모두를 위해 제가 정리한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.

관련 기사:

Jquery의 구체적인 예는 AJAX를 사용해야 하는 시기와 AJAX를 사용해야 하는 위치를 소개합니다.

jquery는 PHP와 결합하여 AJAX 긴 폴링을 구현합니다.

JavaScript, Ajax, jQuery에 대한 사전 이해 , 그리고 세 사람의 관계를 비교해 보세요

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

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