저는 게임을 만들고 있습니다. 조각이 움직이면 ('.draggable'), 이동을 확인한 다음 데이터베이스에 저장하는 첫 번째 아약스 호출 (move_script.php로)을 만들어야합니다. 완료되면 두 번째 ajax 호출 (past_moves.php)을 실행하고 데이터베이스를 쿼리하여 새 이동을 작성하려고합니다. 제 문제는 두 번째 아약스 호출이 현재 이동이 있기 전에 결과를 꺼내는 경우가 있다는 것입니다. microtime()을 사용했습니다. 무슨 일이 일어나고 있는지보고 PHP 코드에서, 그리고 가장 최근의 결과가 나오지 않을 때마다 두 번째 아약스 스크립트가 먼저 완료됩니다. (대부분의 경우 가장 최근의 결과가 나옵니다. 그러나 매번 5 ~ 15 회마다 무작위로 나타납니다.) 첫 번째 작업이 완료 될 때까지 두 번째 ajax 호출이 실행되지 않도록하려면 어떻게해야합니까?자바 스크립트를 선형으로 실행 시키십시오.
<script>
$(function() {
$(".draggable").draggable({
stop: function(event, ui) {
var start = $(this).attr('id')
//ajax call number 1
$.ajax({
type: "POST",
url: "../move_script.php",
data: { start: start }
}).done(function(msg) {
//alert("Data Saved: " + msg);
$("#chessboard").html(msg);
});
//ajax call number 2
$.ajax({
type: "POST",
url: "../past_moves.php",
data: {}
}).done(function(moves) {
$("#past_moves").html(moves);
});
}
});
});
</script>