php的实时进度条实现

时间:2013-11-11 13:21:07

标签: php ajax progress-bar real-time

我有两页。我从第一页发送ajax调用到第二页,在其中执行php代码 执行需要很长时间(1-2分钟)。我可以创建进度条并在第一页显示进度百分比 我可以计算进度百分比,但如何在第一页显示实时。

firstpage.php

$.ajax({ url: 'secondpage.php',
         data: {'q': data},
         type: 'post',
         success: function(output) {
                    //some code
            }

secondpage.php

    <?php

  // I have some codes here that can calculate progress percent
  // but how to show real time progress percent in firstpage.php

 echo $result;  //final result(for ajax callback)
    ?>

2 个答案:

答案 0 :(得分:1)

flush()和ob_flush()是你的朋友。一起使用它们可以将输出发送到缓冲区。

试试我从php.net

获取的这个例子
header( 'Content-type: text/html; charset=utf-8' );
echo 'Begin ...<br />';
for( $i = 0 ; $i < 10 ; $i++ )
{
    echo $i . '<br />';
    flush();
    ob_flush();
    sleep(1);
}
echo 'End ...<br />';

http://php.net/manual/en/function.ob-flush.php

答案 1 :(得分:0)

我会使用jquery ui进度条。 http://jqueryui.com/progressbar/

我会使用ajax调用来完成百分比并使用完成的值来更新进度条,同时在同一页面上。 您可以每隔10秒左右调用一次进度,获取更新,并相应地更新进度条。