首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony Ajax进度条

Symfony Ajax进度条
EN

Stack Overflow用户
提问于 2013-11-29 12:03:21
回答 1查看 3.9K关注 0票数 6

我有一个ajax控制器,可以迭代一个循环。我想在此控制器进度之后更新一个进度条。

基本上,我只需要输出一个$('.bar').css('width', $percent . '%')

但是,一旦函数完成,所有这些输出就会被累积和发送。

如何在每次输出后更新条形图?

我已经试过flush()ob_flush()了。

Symfony使用其他缓冲区吗?

编辑:输出javascript的控制器的一部分

代码语言:javascript
复制
$total = count($results);
foreach ($results as $result) {
    $count++;
    echo '<script>$(\'.bar\').css(\'width\', \'' . (int)($count / $total * 100) . '%\');</script>';
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-29 14:28:29

您必须在您的长php操作中使用会话写关闭()。

联署材料:

代码语言:javascript
复制
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控制器:

代码语言:javascript
复制
public function myVeryLongAction($id)
{
   session_write_close();
   ... code ...
}

public function myCheckAction()
{
    ...code...
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20285374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档