したがって、タイトルは何が起こるかを示しています。ajax呼び出しが1つあり、成功すると別の呼び出しが送信されますが、問題は、呼び出しが完了する前に別の呼び出しが送信され、ajaxがスタックを開始することです。私は非同期を使用しておらず、サーバー言語にphpを使用しています。私のajaxには、5秒= 5000ミリ秒のタイムアウトもあります。そのため、サーバーをポーリングし、それが待機している間に、javascript が新しい ajax 呼び出しを行います。他の ajax が情報を返す前であってもです。
これは私のjquery ajax呼び出しです
$.ajax({
url: ("json/getfriends.php"),
type: 'POST',
data: {friendlist: friendsarray},
async: false,
timeout: 5000,
dataType: 'json',
success: function(data){
$.each(data, function(i, val){
friendsarray.push(val);
});
setTimeout("friends();", 15000); //loops the ajax call
},
error: function(jqXHR, textStatus, errorThrown)
{
if (errorThrown['code'] == 101){
//time out, not data was received
setTimeout("friends();", 15000); //loops the ajax call
}
else
{
console.log(errorThrown);
}
}
});
だから私の質問は、どのように ajax スタックを互いの上に停止するか、または 1 つの ajax 呼び出しをもう 1 つの呼び出しがデータを戻すときにのみ実行する方法です。