Ajax 요청을 비동기식에서 동기식으로 변경하는 방법

青灯夜游
풀어 주다: 2022-01-17 16:28:32
원래의
6177명이 탐색했습니다.

AJAX는 서로 다른 비동기 값에 따라 동기와 비동기로 나눌 수 있습니다. 기본적으로 비동기 값은 true(비동기 제출)입니다. 비동기를 동기로 변경하려면 비동기 값을 false로 설정하기만 하면 됩니다.

Ajax 요청을 비동기식에서 동기식으로 변경하는 방법

이 튜토리얼의 운영 환경: 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("
item_result.id
"); }); } $("#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("
item_result.id
"); }); //注意在ajax中的push完成后,将其改回异步 $.ajaxSettings.async = true; } $("#id").empty().append(dom.join('')); });
로그인 후 복사

[관련 튜토리얼 권장 사항 :

AJAX 비디오 튜토리얼

]

위 내용은 Ajax 요청을 비동기식에서 동기식으로 변경하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!