AJAX는 서로 다른 비동기 값에 따라 동기와 비동기로 나눌 수 있습니다. 기본적으로 비동기 값은 true(비동기 제출)입니다. 비동기를 동기로 변경하려면 비동기 값을 false로 설정하기만 하면 됩니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
AJAX는 async 값에 따라 동기(async = false)와 비동기(async = true)로 구분됩니다.
기본적으로 async는 true(비동기 제출)입니다.
동기화하려면 async를 false로 설정하세요.
예:
AJAX를 사용할 때 가끔 한 인터페이스에서 데이터에 해당하는 배열과 ID를 가져온 다음 다른 인터페이스에서 데이터를 가져와야 하는 경우가 있습니다.
$.get(url_1, function (data) { var dom = []; for (var i = 0; i < data.length; i++) { var item = data[i]; //两个url不一致,根据id查找另一个表 $.get(url_2, function (data) { var item_result = data; dom.push("<div> item_result.id</div>"); }); } $("#id").empty().append(dom.join('')); });
하지만. 이때 종종 배열이 지워진 후 데이터가 기록되지 않는 문제가 발생하는데, 초보자가 종종 인터페이스가 잘못되었다고 착각하는 경우는 $get()과 같은 Ajax 메소드 때문입니다. ) 인터페이스를 호출할 때 시간이 걸리므로 푸시가 완료되기 전에 완료됩니다. 추가 동작이 발생합니다. 즉, 이때 배열이 지워지지만 이때 dom 배열에서 조인으로 읽은 데이터는 없습니다. 따라서 루프 내 Ajax를 동기화하려면 코드 수정이 필요합니다.
$.get(url_1, function (data) { var dom = []; for (var i = 0; i < data.length; i++) { var item = data[i]; //在第二次的Ajax前将异步改同步 $.ajaxSettings.async = false; //两个url不一致,根据id查找另一个表 $.get(url_2, function (data) { var item_result = data; dom.push("<div> item_result.id</div>"); }); //注意在ajax中的push完成后,将其改回异步 $.ajaxSettings.async = true; } $("#id").empty().append(dom.join('')); });
[관련 튜토리얼 권장 사항 :
AJAX 비디오 튜토리얼]
위 내용은 Ajax 요청을 비동기식에서 동기식으로 변경하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!