私は、AjaxリクエストをトリガーするJQueryの各ループを持っています。すべてのajax呼び出しが実行された後、1つの成功メッセージを表示したい。私のコードは以下になりJQueryですべてのajax呼び出しが完了すると、各ループは完了しますか?
、
$('.container input:checked').each(function() {
json_data = $(this).parent().parent().find('.case_json').html()
$.ajax({
type: "POST",
url: "/some_action",
data: { json_data : json_data },
success: function(data) {
console.log('saved')
}
})
}).promise().done(function(){ $('#import_message').show().addClass('alert alert-success').html('Data imported successfully!') });
しかし、コードの問題は、AJAX呼び出しが実行行われる前に、私の成功メッセージが道を表示なっているです。
私は間違っていますか?または、私が実装した方法を変更する必要がありますか?
jQueryを使用している場合は、 'jquery.when()'を使用してください。 –
私の推測は、現在のところ、最初のリクエストが終了するとすぐに約束を返し、成功メッセージを実行します。 –
多分、https://github.com/caolan/asyncが必要です – slorenzo