AJAX 함수에서 반환되지 않는 변수의 수수께끼
웹 애플리케이션 영역에서는 JavaScript 코드를 별도의 파일로 모듈화하여 기능을 향상시키는 것이 일반적입니다. 조직 및 유지 관리 가능성. 그러나 이러한 전환으로 인해 AJAX 함수에서 반환될 때 변수가 사라지는 것처럼 보이는 등 수수께끼 같은 문제가 발생할 수 있습니다.
문제:
프레임워크를 여러 파일로 분할한 후 개발자는 AJAX 함수에서 반환된 변수가 비어 있는 문제가 발생합니다. JS 파일에 데이터가 있음에도 불구하고 실행 시 반환되지 않습니다. 조사 중인 코드:
function get_data(data, destination) { ... if (data) { return data; } }
var test = get_data(data, destination);
원인:
AJAX 호출의 비동기 특성이 원인입니다. AJAX 호출은 백그라운드에서 실행됩니다. 즉, 응답을 기다리지 않고 코드가 계속 실행됩니다. 결과적으로 AJAX 호출이 완료되기 전에 get_data 함수가 반환되어 빈 테스트 변수가 생성됩니다.
해결책:
이 문제를 해결하려면 콜백을 사용해야 합니다. AJAX 응답을 처리하는 함수입니다. AJAX 호출이 완료되면 콜백 함수가 호출되어 반환된 데이터에 액세스할 수 있습니다.
function get_data(data, destination, callback) { ... if (data && callback) { callback(data); } }
get_data(data, destination, function(test) { notice(test); });
위 내용은 내 AJAX 함수 반환 값이 비어 있는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!