javascriptについての私の理解は、常にコードが順番に実行されているため、次の行は実行されるまで実行されません。jQueryのajax呼び出しに関してコード実行はどのように機能しますか?
私は、一連の質問を一度に試して保存しようとしていたので、次のようなことがあります。
for(var i = 1; i <= assessment_question_count; i++)
{
if(valid)
{
var sort = i;
$.ajax(
{
type: "POST",
url: '/assessmentquestion/create',
data: 'assessment_id=' + assessment[1] + '&question_text=' + $('#assessment_question_text_' + sort).val() + '&assessment_question_type_id=' +
$('assessment_question_type_' + sort).val() + '&sort_order=' + i,
success: function (str)
{
var result = str.split('|');
if (result[0] == 'success')
{
var message = '<br />Question saved ';
update_display_message(message);
}
else if(result[0] == 'fail')
{
valid = false;
var message = '<br />Error saving question ';
}
else
{
valid = false;
var message = '<br />Error saving question ';
}
}
});
}
}
私はに実行している問題は、完了するのを待っていない、とすぐにそれはAjaxの呼び出しを行うと、次のループ上に行くように見えるです。これを修正する方法はありますか?それで、これまでの更新まで次の質問を試みませんか?
編集:私は多分それが完了するまで自分自身を呼び出し続ける再帰的な方法でそれを固執すると思います。
大きな質問は、すべての質問を1つのJSONペイロードに巻き込んで、1つのAJAXリクエストでサーバーに送信する理由です。 –
@NickBork私はそれについて考えなかった、それを見てから、最善のアプローチのように思える。あなたが答えとしてそれを置くなら、私はそれを受け入れるとマークします。 – Jhorra