我有两页。我从第一页发送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)
?>
答案 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 />';
答案 1 :(得分:0)
我会使用jquery ui进度条。 http://jqueryui.com/progressbar/
我会使用ajax调用来完成百分比并使用完成的值来更新进度条,同时在同一页面上。 您可以每隔10秒左右调用一次进度,获取更新,并相应地更新进度条。