이 코드는 지나치게 모호합니다. var raw_data = ajax_fetch_data();
은 보통은 다음과 같이이다 :
// url = ...
// data = ...
create_ajax_request(url, data, callback);
// This will continue to execute like normal
// ...
// ...
// ...
// Now, in a differnt part of the code:
function callback() {
// Sometime later, when AJAX returns data, this is called.
}
을 그래서 기본적으로 두 개의 스레드를 가지고 : 당신이 요청을 "시작"메인 프로그램 및 요청이 완료되면 호출되는 콜백 함수를. 이것은 여전히 세부 사항을 무시합니다. 당신은 에이잭스 (syncronous 자바 스크립트 & XML에 대한 나쁜 약어)를 원하는 경우
, 당신은 jQuery를 같은 것을 사용할 수 있습니다. (
var result = null;
$.ajax({
aync: false,
data: data,
url: url,
success: function(data) {
result = data;
}
});
// result is populated before $.ajax() moves on, so you can use it right after
console.log('result: ' + result);
그러나,이 바쁜-대기를 수행 즉, 브라우저가 붙어있다/데이터가 들어올 때까지 잠긴 상태로 유지 될 수 있습니다 ... 몇 분이 될 수 있습니다. 따라서 필요한 경우에만 사용해야합니다. 데이터를 가져 와서 처리하려는 경우 콜백을 사용하십시오.
// Call this to start a request
function startRequest() {
data = ...
create_ajax_request(url, data, continueRequest);
}
// This is called once we have the data
function continueRequest(data) {
alert(data);
}
이것은 AJAX 프로그램에서보다 일반적입니다.
그에게 말하지 마십시오. 이제 그는 돌아가서 모든 질문에 무작위로 대답 할 것입니다. –
아, 죄송합니다. 나는 어떻게 든 당신이 대답을 받아 들여야한다는 사실을 간과했다. 생각 대답의 품질은 단순히 투표 수에 반영되었습니다. 돌아가서 내 질문에 대한 올바른 대답을 수락하겠습니다. – makeee