前台 AJAX 看看能满足要求不?

解决方案 »

  1.   

    我记得有一个 flush()方法吧,可以把前面已经输出的数据发到浏览器的!
      

  2.   

    给你一个参考
    <?php
    set_time_limit(0);
    header("Connection: Keep-Alive");
    header("Proxy-Connection: Keep-Alive");
    for($i=0; $i<1000; $i++) {
       print 'fuck man!'.$i.'<br>';
       flush();
       sleep(3);
       clearstatcache();
    }
    ?>
      

  3.   

    flush()我也试过了
    貌似数据在什么地方被缓存了
      

  4.   

    试试set_time_limit(0); 
    for ($i=10; $i>0; $i--) 

    echo $i; 
    sleep(10); 

    ?> 
      

  5.   

    对了,忘记说了,你需要关闭服务器的gzip压缩功能!否则。 还是一下子出来的。
      

  6.   

    java里也有这个问题
    tomcat 自己有gzip压缩
    估计你的 apache 也启用了这个压缩,看一下配置参数吧!
      

  7.   

    测试了一下,都不行!
    好象不能,我理解是PHP必须进行执行所有程序后,才会输出所有内容
      

  8.   

    echo 'hello world';
    ob_flush();
    flush();
    sleep(1);
      

  9.   

    完全可以不过要改一下程序,我的采集程序用过的进度条,很帅<?php 
    ob_implicit_flush(true); 
    echo str_repeat(' ',500);
    for ($i=10; $i>0; $i--) 

    echo $i; 
    ob_flush();
    sleep(1); 

    ?>必须先输出一定数目的空白字符才行
      

  10.   

    for ($i=10; $i>0; $i--)  
    {  
    //连接 存储部分.记录当前$i 值.  建议连接 memcached server.
    sleep(1);  
    }  另起一个接口.读取上面存储部分的值.
    AJAX从接口获取当前$i的值.算出进度百分比.并表现.
      

  11.   

    楼上的只是借助增字符显示延迟!
    这咱延迟是由于文件大传输慢
    但输出显然是一成文件后才一起发送的!
    可以echo很多,但发送前,显然是必须echo完所有,所以在PHP定时没有意义的
      

  12.   

    关闭服务器的gzip压缩功能,然后用flush 
      

  13.   

    要用AJAX的吧,弄一个层,背景是个图片,根据执行的次数控制这个层的长度百分比·呵呵,一个想法·
      

  14.   

    <?php 
    ob_end_clean(); 
    ob_implicit_flush(true); 
    for ($i=10; $i>0; $i--) 

    echo $i;
    ob_flush(); 
    flush();

    sleep(1); 

    ?> 
      

  15.   

    flush没试过,我们都是用AJAX实现的