我有一个ajax控制器,可以迭代一个循环。我想在此控制器进度之后更新一个进度条。
基本上,我只需要输出一个$('.bar').css('width', $percent . '%')。
但是,一旦函数完成,所有这些输出就会被累积和发送。
如何在每次输出后更新条形图?
我已经试过flush()和ob_flush()了。
Symfony使用其他缓冲区吗?
编辑:输出javascript的控制器的一部分
$total = count($results);
foreach ($results as $result) {
$count++;
echo '<script>$(\'.bar\').css(\'width\', \'' . (int)($count / $total * 100) . '%\');</script>';
}发布于 2013-11-29 14:28:29
您必须在您的长php操作中使用会话写关闭()。
联署材料:
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...
}https://stackoverflow.com/questions/20285374
复制相似问题