Symfony Ajax Progress Bar


Symfony Ajax Progress Bar

我有一个ajax控制器,它可以迭代一个循环。我想在此控制器进度之后更新进度条。
基本上,我只需要输出一个$('.bar').css('width', $percent . '%')
但所有这些输出都只是在函数完成后进行累积和发送。

如何在每次输出后更新条形图?
我已经尝试过flush()ob_flush()

Symfony是否使用其他缓冲区?

EDIT:输出javascript 的控制器的一部分

$total = count($results);
foreach ($results as $result) {
    $count++;
    echo '<script>$(''.bar'').css(''width'', ''' . (int)($count / $total * 100) . '%'');</script>';
}

您必须在长php操作中使用session-write-close()。

JS:

var isInProgress = false;
function veryLongImport()
{
     isInProgress = true;
     checkfx();
     $.ajax({
            type: "GET",
            url: /myverylongueactionPath ,
            async : true,
            cache: false,
            dataType:'html',
            success: function(data){},
            error: function(){  },
            complete: function(){
                isInProgress = false;
            }
        });
}
function checkfx()
{
    if( isInProgress != false )
    {
        $.ajax({
            type: "GET",
            url: /mycheckpath ,
            async : true,
            cache: false,
            dataType:'html',
            success: function(data){
                 makeYourProgressBarGrowHere();
             },
            error: function(){  },
            complete: function(){
                checkfx();
            }
        });
    } else { }
}

PHP控制器:

public function myVeryLongAction($id)
{
   session_write_close();
   ... code ...
}
public function myCheckAction()
{
    ...code...
}