javascript - jQuery ajax 调用的代码执行如何工作?

标签 javascript jquery

我对 javascript 的理解一直是代码是按顺序执行的,因此下一行只有在上一行执行完毕后才会执行。

我有类似下面的东西,我试图用它来尝试一次保存一系列问题。

    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 调用,它似乎就会进入下一个循环,而不是等待它完成。有没有办法修改它,以便在之前的更新之前不会尝试下一个问题?

编辑:我想也许可以将其保留在递归方法中,该方法不断调用自身直到完成。

最佳答案

默认情况下,ajax works asynchronously .

async 设置为 false 以防止出现这种情况。

$.ajax(
            {
                type: "POST",
                url: '/assessmentquestion/create',
                async: false,
                etc...

关于javascript - jQuery ajax 调用的代码执行如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10519321/

相关文章:

jquery/css 图像裁剪

javascript - 使用 ng-repeat 和过滤器时数组中对象的 $index

javascript - 单击后退按钮时如何记住上一页的滚动位置

Javascript 正则表达式验证国家/地区名称

Javascript:点击缩略图切换大图。最好的方法?

javascript - 为每个 mysql 创建用 javascript 提交

javascript - 如何将 js 变量传递给 flask jinja 函数 url_for

javascript - 应用程序在找不到父级时崩溃

javascript - 如何解析来自推特的 json 响应

jquery - 将 cookie 设置为在 div 上过期