递归ajax调用不执行脚本包括在递归之间

时间:2013-08-23 23:31:24

标签: javascript ajax

我有一个正常工作的递归Ajax调用(PhP脚本调用他的工作,递归工作,一切都很好)除了在ajax调用之间我尝试更新输入文本值以显示进度,它只整个循环完成后更新。

为什么是

$('#start_'+code_regional).val(msg);

没有执行?

function addLeads(code_regional, phone_numbers_start)
    {
        var databases = [];
        var file = document.getElementById('file_'+code_regional).files[0];

        var formData = new FormData();
        formData.append('selectedDatabases', JSON.stringify(databases));
        formData.append('code_regional', code_regional);
        formData.append('phone_numbers_start', phone_numbers_start);
        formData.append('phone_numbers_end', $('#end_'+code_regional).val());
        formData.append('filePath', file);

        $.ajax({
           type: 'POST',
           url: 'execute.php',
           data: formData,
           processData: false,
           contentType: false,
           success: function(msg){
                $('#start_'+code_regional).val(msg);
                if(msg < $('#end_'+code_regional).val())
                {
                    addLeads(code_regional, msg);
                }
                else
                {
                    $('#start_'+code_regional).val($('#end_'+code_regional).val());
                }
           }
        });
    }

2 个答案:

答案 0 :(得分:1)

如果msg是整数,则应该比较整数而不是字符串:

if( parseInt(msg,10) < parseInt($('#end_'+code_regional).val(),10) )

如果仍然失败,请尝试在测试之前和之后添加console.log(...),以了解发生了什么。

答案 1 :(得分:1)

在ajax调用之间你是什么意思?代码告诉我,“如果msg小于y,再次调用addLeads,否则更新start字段”。因此,不跟踪进度,开始字段仅在结束时更新。如果要始终更新,请将更新行移到条件之外。